Ошибка приложения или объекта - PullRequest
0 голосов
/ 19 января 2012

Я пытаюсь добавить листы, используя: ThisWorkbook.Sheets.Add

Я могу добавить один лист, но при попытке добавить два листа выдается ошибка: ошибка приложения или объекта.

Вот код для добавления листов:

Application.ScreenUpdating = False
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets.Add(after:=Worksheets(Worksheets.Count), Count:=2, Type:="C:\Users\TestUser\Desktop\TestWorksheet.xltm")
Set ws = Nothing
Application.ScreenUpdating = True

Когда я изменяю Count:=1, он работает нормально, отображается ошибка для Count:=2

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 19 января 2012

Это потому, что вы установили его как WS, который определен как рабочий лист.Таким образом, он не может содержать несколько листов

1 голос
/ 19 января 2012

«Счет» будет работать только при попытке добавить xlWorksheet (который по умолчанию) , xlChart , xlExcel4MacroSheet или xlExcel4IntlMacroSheet .

Например

Sub Sample1()
     Dim ws As Worksheet

     Set ws = ThisWorkbook.Sheets.Add(after:=Worksheets(Worksheets.Count), Count:=5, Type:=xlWorksheet)

     Set ws = Nothing
End Sub

Даже если вы не включите xlWorksheet, все в порядке, так как оно используется по умолчанию.

Когда вы добавляете из шаблона, вы должны делать это в цикле. Например

Sub Sample2()
    Dim ws As Worksheet
    Dim i As Long

    Application.ScreenUpdating = False

    i = 1

    Do While i < 3 '<~~ Adding 2 times
        Set ws = ThisWorkbook.Sheets.Add(after:=Worksheets(Worksheets.Count), _
        Type:="C:\Users\TestUser\Desktop\TestWorksheet.xltm")
        i = i + 1
    Loop

    Set ws = Nothing

    Application.ScreenUpdating = True
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...