Я написал макрос, который импортирует большой файл данных CSV, организует данные и создает диаграммы. Диаграммы создаются:Excel VBA macro для копирования и вставки диаграмм работает иногда
- Копирование шаблона диаграммы
- Вставить на другой вкладке
- Rename диаграмма
- Добавить серии данных
- Повторите для каждого столбца данных
Проблема У меня есть то, что, когда я запускаю макрос нормально, он фактически не копирует шаблонную диаграмму. Таким образом, в буфере обмена ничего не происходит, когда он переходит к вставке, что вызывает ошибку. Вот реальный код:
wbGen.Sheets("Dashboard").ChartObjects("Chart 0").Activate
ActiveChart.ChartArea.Copy
wbGen.Sheets("Charts").Activate
ActiveSheet.Cells(iRotor * 16 - 31, iChartA * 7 - 6).Select
ActiveSheet.Paste 'Debug mode points to this line
ActiveSheet.ChartObjects("Chart 0").Activate
ActiveSheet.Shapes("Chart 0").Name = "Chart " & iChart
Вот загвоздка: если я нажимаю Debug
, вернуть курсор к первой строке выше, и нажмите продолжить, то код выполняет отлично. Я не могу понять, почему он работает в режиме отладки, но не нормально. Я ценю любую помощь, которую вы можете предоставить.
В качестве побочного примечания мои попытки избавиться от заявлений Activate
и Select
не были плодотворными. Любая помощь, которую я могу получить в этой области, также будет оценена по достоинству.
Что вы пытаетесь сделать в строке над ошибкой? – Kathara
Каково значение 'iRotor' и' iChartA', когда код не работает? –
Строка 4 определяет, где наклеивается диаграмма. Например, первая итерация (когда код не работает) имеет 'iRotor = 2' и' iChartA = 1'. Это вызывает выбор ячейки (1,1) и наложенную там диаграмму. На следующей итерации 'iRotor = 2' и' iChartA = 2', поэтому следующий график вставляется в ячейку (1, 8). –