После нескольких часов работы я понял, что смещение всегда будет работать со всем диапазоном, каким бы он ни был. Поэтому я попытался заменить ссылки на ячейки в диапазоне переменной с частичным успехом. Если у меня есть переменная с именем SelRow
и я добавлю в нее ссылки на ячейки, это сработает. Итак, этот код выглядел так:
SelRow = "A23:G42"
Range("A2:G2",SelRow).Select
Это не сработало, потому что мой выбор был A2:G42
, поэтому я изменил его на:
SelRow = "A2:G2,A23:G42"
Range(SelRow).Select
И это сработало. Поэтому все, что мне нужно было сделать, это начать со ссылочного номера, который использовался для вычисления еще 2 переменных, называемых StRow
и EndRow
. Ссылочный номер может быть и будет любым, но сейчас я начал с 23.
StRow=23
EndRow = StRow + 19
NowSel = "a2:G2,A" & StRow & ":G" & EndRow
Range(NowSel).Select
Это сработало. Результат NowSel
в этом случае был A2:G2,A23:G42
Это, конечно, может быть довольно длинным, поэтому мой окончательный код выглядит следующим образом:
StRow = Worksheets("Cell List").Range("A1") 'Get the last row number used
StRow = StRow + 20 'Set the next start row to last row + 20
EndRow = StRow + 19 'Set the last row for selection to start row + 19
NowSel = "a2:c2,f2:g2,a" & StRow & ":c" & EndRow & ",f" & StRow & ":g" & EndRow
Range(NowSel).Select
А теперь выделены следующие ячейки A2:C2
и F2:G2
и A23:C42
и F23:G42
Теперь я могу создавать диаграммы, просто меняя ссылочный номер.