Я следующий кодExcel 2007 VBA не изменит название диаграммы
Sub Foo()
Dim Graph As Chart
Set Graph = AddGraph()
Graph.name = "XXXX"
End Sub
Function AddGraph() As Chart
Dim Graph As Chart
'
'
'
Graph.name = "XXXX"
Set AddGraph = Graph
End Function
(Обратите внимание, что VBE, что нижний регистр "имя".)
В AddGraph, график создается с Name="ChartXX"
. Оператор присваивания НЕ меняет имя.
В Foo, когда выполняется оператор присваивания имени, управление удаляется до верхней части вызывающего стека. (Другие манипуляции графика не вызывает никаких проблем.)
Поэтому у меня есть два вопроса:
) Почему не имя смены работы в AddGraph? и
) Почему смена имени позже в Foo?
'(. Обратите внимание, что VBE, что нижний регистр«имя»)' Определили вы переменную ' имя' где-то? Некоторые вещи, такие как 'Dim name as String' –
No. Если вы записываете макрос, который изменяет имя диаграммы,« имя »- это строчный регистр. – user1438070
Нет, это не так :) Это будет сделано только тогда, если вы указали где-то имя «Dim name as ..». Попробуй это. Закрыть Все файлы Excel. Затем откройте новый файл excel. Заполните 2 строки фиктивными данными. Создайте диаграмму и теперь запишите макрос. Проверьте сейчас :) –