Я хотел бы использовать l oop для быстрого перемещения моих объектов в разных частях листа.
Каждый моего текстового поля имеют свое собственное имя (ID), которое использовалось в l oop.
Код выглядит следующим образом:
Dim i As Long, shp, ws As Worksheet
Set ws = ActiveSheet
For i = 1 To 4
Set shp = ws.Shapes("Textbox_Chamber" & i)
With ws.Range("C6").Offset(i - 10, 0)
shp.Top = .Top
shp.Left = .Left
End With
Next i
End Sub
Запрос ниже заявляет:
Ошибка выполнения VBA 1004 «Ошибка приложения или объекта» при выборе диапазона
, что одним из решений является четкое определение листа, который мы используем в нашей работе. Мой лист также был определен.
Если честно, я не знаю, что я здесь сделал неправильно. Я хочу, чтобы это l oop работало.
РЕДАКТИРОВАТЬ:
После рекомендации в комментарии мой код выглядит следующим образом:
Dim i As Long, shp, ws As Worksheet
Set ws = ActiveSheet
For i = 1 To 4
Set shp = ws.Shapes("Textbox_Chamber" & i)
With ws.Range("C6").Offset(i + 10, 0)
shp.Top = .Top
shp.Left = .Left
End With
Next i
End Sub
Но это все равно не решает мою проблему, поскольку все объекты копируются в одну целевую ячейку вместо 4.
Я хочу, чтобы они располагались через каждые 10 ячеек в строке, как показано на рисунке ниже. Как я могу расширить свой l oop тогда?