在没有任何工作表的情况下启动空的Excel工作簿

haw*_*bsl 8 excel vba excel-vba

创建新的Excel工作簿,如下所示:

Dim xl As Excel.Application
Dim wb As Excel.Workbook
Set xl = New Excel.Application
xl.Visible = False
Set wb = xl.Workbooks.Add
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以阻止Excel自动创建Sheet1,Sheet2,Sheet3吗?

我可以随后删除这些不需要的纸张,但这感觉就像一个笨重的解决方案.

mar*_*arg 11

xl.SheetsInNewWorkbook = 1
Run Code Online (Sandbox Code Playgroud)

有关MSDN的更多信息(向下滚动Add method as it applies to the Workbooks object.)

完整代码:

Dim xl As Excel.Application
Dim wb As Excel.Workbook
Dim restoreSheetsInNewWorkbook As Long

Set xl =  New Excel.Application
restoreSheetsInNewWorkbook = xl.SheetsInNewWorkbook
xl.SheetsInNewWorkbook = 1

Set wb = xl.Workbooks.Add
xl.SheetsInNewWorkbook = restoreSheetsInNewWorkbook 'or just set it to 3'
Run Code Online (Sandbox Code Playgroud)

  • 如果您不想惹恼用户,请不要忘记这需要恢复到原始设置. (3认同)
  • @hawbsl,一本工作簿必须至少有一张表.如果您想要_empty_ excel/app,请不要添加任何工作簿.宾语. (3认同)