Если List
не является именем VBA листа, его необходимо определить:
Dim List As Worksheet
Set List = ThisWorkbook.Worksheets("List")
или убедитесь, что имя VBA этого листа фактически изменено на List
в окне свойств. редактора VBA.
List.Activate
активирует лист с именем VBA List
Worksheets("List").Activate
активирует лист с именем вкладки List
обратите внимание, что эти 2 системы именования полностью независимы.
Возможно, вам будет полезно прочитать Как избежать использования Select в Excel VBA .
Worksheet(1).Name = "All Data"
Worksheet.Add(After:=Worksheet("All Data")).Name = "List"
Worksheet("List").Activate ' don't use activate! see link above
или
Worksheet(1).Name = "All Data"
Dim List As Worksheet
Set List = Worksheet.Add(After:=Worksheet("All Data"))
List.Name = "List"
List.Activate ' don't use activate! see link above
Не смешивайте Sheets
с Worksheets
, они считаются по-разному. Sheets
содержит все типы листов, такие как рабочие листы, таблицы и т. Д. c. но Worksheets
содержит только рабочие листы.
Если у вас есть 2 рабочих листа и 1 лист диаграммы:
Worksheets.Count
это 2
но Sheets.Count
это 3
.