Настройка свойства положения легенды VBA Excel Chart в MS Access не работает - PullRequest
0 голосов
/ 14 октября 2011

Это очень странная проблема, с которой я сталкиваюсь некоторое время при программном создании некоторых таблиц Excel из MS Access 2003.

Используя этот фрагмент кода VBA, я не могу установить Свойство Position объекта Legend в Excel (определения переменных и т. Д. Для упрощения понимания).

...
Set ChartObject = myWorksheet.ChartObjects.Add(myRange.Left, myRange.Top, myRange.width, myRange.Height)
Set Chart = ChartObject.Chart
Chart.HasLegend = True
'This line raises an error:
Chart.Legend.Position = -4107 '=xlLegendPositionBottom
...

MS Access всегда вызывает ошибку 1004:

"Невозможно установить свойство Position класса Legend"

Меня смущает, что я могу использовать точно такой же код из Exel VBA, и он просто работает.Что меня смущает еще больше, так это то, что свойство HasLegend можно установить без возникновения ошибки.

У кого-то есть подсказка для решения этой проблемы?

1 Ответ

0 голосов
/ 18 октября 2011

После создания общей версии моего кода я обнаружил, что в Office / Excel 2003 мне необходимо заполнить мою серию данных на диаграмме, прежде чем менять положение легенды. Вероятно, объект не был инициирован раньше. Мой код должен выглядеть следующим образом:

...
Set ChartObject = myWorksheet.ChartObjects.Add(myRange.Left, myRange.Top, myRange.width,  myRange.Height)
Set Chart = ChartObject.Chart
Chart.HasLegend = True
...
Chart.SeriesCollection.Add myRange, 1 '=xlRows
'Now this works:
Chart.Legend.Position = -4107 '=xlLegendPositionBottom
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...