Буду признателен за вашу помощь с макросом, который я пытаюсь создать.Looping через различные листы
У меня есть файл xls с кучей листов, некоторые из которых называются «1», «2», «3» и так далее. Я хотел бы создать макрос, который зацикливается только через эти «числовые» рабочие листы, следовательно, НЕ согласно индексу, как в приведенном ниже коде. (Лист «1» не является первым листом в книге). Перед циклом мне нужно определить диапазон ячеек и листы.
Ниже приведена моя (неправильная) попытка.
Sub Refresh()
Dim i As Integer
Dim rng As Range
Set rng = Range("A10:TZ180")
For i = 1 To 30
Sheets(i).Activate
rng.Select
rng.ClearContents
Application.Run macro:="xxx"
Next i
End Sub
Итак ... что ваш вопрос? – Taosique
Ваша переменная 'rng' используется неправильно. После того, как вы назначили диапазон, он не изменяется только потому, что вы активируете другой лист. –
Попытка использовать 'rng.select' после активации другого листа даст ошибку:« Невозможно выбрать метод класса Range ». Это связано с тем, что вы не можете выбрать диапазон на неактивном листе. Поэтому перед тем, как использовать это, вам необходимо назначить диапазон для каждого отдельного листа. Ваш 'Set rng = Range (" A10: TZ180 ")' должен быть после 'Таблицы (i) .Activate', после чего он установит диапазон на активный лист. –