Я пытаюсь написать макрос, который может создать до 3 новых листов, и в конце переместит эти листы в новую книгу. Некоторые, все или ни один из этих листов могут быть созданы, и я изо всех сил пытаюсь переместить их все. Я попытался добавить их имена как в строку, так и в массив (с кавычками и без, чтобы имитировать, если я вручную вводил имена листов для перемещения).
Это то, что у меня есть в данный момент, но оно возвращает ошибку времени выполнения '9': индекс ниже диапазона. Если я перемещаю только один из листов, это работает нормально, но как только появляется несколько листов, он перестает работать. Пожалуйста, кто-нибудь может посоветовать?
Dim SheetNames As String
if x is True Then
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "a"
SheetNames = Worksheet.Name
End if
if y is True Then
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "b"
If SheetNames = "" Then
SheetNames = Worksheet.Name
Else
SheetNames = sheetNames & Worksheet.Name
End if
End if
if z is True Then
Sheets.Add(After:=Sheets(Sheets.Count)).Name = "c"
If SheetNames = "" Then
SheetNames = Worksheet.Name
Else
SheetNames = sheetNames & Worksheet.Name
End if
End if
Sheets(Array(SheetNames)).Move