应用程序定义或对象定义错误

时间:2012-01-19 17:59:12

标签: excel vba excel-vba

我正在尝试使用以下内容添加工作表: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 个答案:

答案 0 :(得分:2)

这是因为您将其设置为WS,并将其定义为工作表。所以它不能包含多个工作表

答案 1 :(得分:1)

“计数”仅在您尝试添加 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