Объявите два несмежных столбца как оси моей диаграммы с переменными - PullRequest
0 голосов
/ 03 февраля 2020

Я сделал электронную таблицу, которая генерирует графики из таблицы. Эта таблица имеет переменный размер, зависит от моей записи. Из-за этого изменения мне нужно настроить масштаб графики.

Я создал исходный код VBA, который хорошо работает. При попытке улучшить код, я хотел бы превратить этот раздел в «для», у меня возникают трудности при выборе осей X и Y графика.

ошибка 424 (Ошибка времени выполнения - объект обязателен)

Я ставлю комментарий перед строкой, в которой проявляется проблема.

Рабочий код :

' Ajuste_Escala Macro

ActiveSheet.ChartObjects("Gráfico 1").Activate
ActiveSheet.ChartObjects("Gráfico 1").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,D:D")

ActiveSheet.ChartObjects("Gráfico 2").Activate
ActiveSheet.ChartObjects("Gráfico 2").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,E:E")

ActiveSheet.ChartObjects("Gráfico 3").Activate
ActiveSheet.ChartObjects("Gráfico 3").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,F:F")

ActiveSheet.ChartObjects("Gráfico 4").Activate
ActiveSheet.ChartObjects("Gráfico 4").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,G:G")

ActiveSheet.ChartObjects("Gráfico 5").Activate
ActiveSheet.ChartObjects("Gráfico 5").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,H:H")

ActiveSheet.ChartObjects("Gráfico 6").Activate
ActiveSheet.ChartObjects("Gráfico 6").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,I:I")

ActiveSheet.ChartObjects("Gráfico 7").Activate
ActiveSheet.ChartObjects("Gráfico 7").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,J:J")

ActiveSheet.ChartObjects("Gráfico 8").Activate
ActiveSheet.ChartObjects("Gráfico 8").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,K:K")

ActiveSheet.ChartObjects("Gráfico 9").Activate
ActiveSheet.ChartObjects("Gráfico 9").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,L:L")

ActiveSheet.ChartObjects("Gráfico 10").Activate
ActiveSheet.ChartObjects("Gráfico 10").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,M:M")

ActiveSheet.ChartObjects("Gráfico 11").Activate
ActiveSheet.ChartObjects("Gráfico 11").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,N:N")

ActiveSheet.ChartObjects("Gráfico 12").Activate
ActiveSheet.ChartObjects("Gráfico 12").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,O:O")

ActiveSheet.ChartObjects("Gráfico 13").Activate
ActiveSheet.ChartObjects("Gráfico 13").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,P:P")

ActiveSheet.ChartObjects("Gráfico 14").Activate
ActiveSheet.ChartObjects("Gráfico 14").Activate
ActiveChart.PlotArea.Select
ActiveChart.SetSourceData Source:=Range("C:C,Q:Q")

Range("R1").Select
End Sub

Не рабочий код :

' Ajuste_Escala Macro

Dim grafico As String
Dim graf As Integer
Dim numero As String
Dim nome As String
Dim colunaX As Integer
Dim colunaY As Integer
grafico = "Gráfico "
graf = 1
colunaX = 3
colunaY = 4


For I = 1 To 14

numero = CStr(graf)
nome = grafico + numero


ActiveSheet.ChartObjects(nome).Activate
ActiveChart.PlotArea.Select

' the next line is where the error occurs
ActiveChart.SetSourceData Source:=Union(Columns(colunaX), Columns(colunaY)).Select

graf = graf + 1
colunaY = colunaY + 1

Next I

Range("R1").Select

End Sub

Я не намерен добавлять какие-либо новые функции. Я хочу, чтобы они оба выполняли одну и ту же задачу, однако мне бы хотелось, чтобы она выполняла код, поскольку это повторяющаяся задача.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...