我有一个当前未打开的 excel“Closed.Xls”。
请让我知道如何在这个封闭的 Excel 文件中添加新工作表。我知道如何在当前的 excel 中添加新工作表。
Dim WS as Worksheet
Set WS = Sheets.Add
请让我知道如何
- 使用 VBA 在封闭的 Excel 中添加新工作表,以及
- 获取添加的工作表的名称
注意:我不想重命名工作表。
谢谢
像这样的东西会做你想做的事。不打开工作簿是不可能的,但是如果您关闭屏幕更新,它会出现未打开的外观。
Option Explicit
Sub Add_Sheet_ClosedBook()
Dim bk As Workbook
Dim sh As Worksheet
Dim shName As String
With Application
.ScreenUpdating = False
.DisplayAlerts = False
Set bk = .Workbooks.Open _
("Path to Book.xls")
End With
With bk
Set sh = .Sheets.Add
shName = sh.Name
.Save
.Close
End With
With Application
.ScreenUpdating = True
.DisplayAlerts = True
End With
End Sub
要获取工作表名称,请使用worksheet
变量,即
Sub Added()
Dim Wb As Workbook
Dim ws As Worksheet
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.EnableEvents = False
End With
Set Wb = Workbooks.Open("c:\Temp\closed.xls")
Set ws = Wb.Sheets.Add
Debug.Print ws.Name
Wb.Save
Wb.Close
With Application
.ScreenUpdating = True
.DisplayAlerts = True
.EnableEvents = True
End With
End Sub
可以使用 Microsoft.ACE.OLEDB.12.0 提供程序在不打开工作簿的情况下添加工作表:
set cn = new adodb.connection
with cn
.provider = "Microsoft.ACE.OLEDB.12.0"
.connectionstring = "Data Source=" & strSomeFilename & ";Extended Properties=""Excel12.0;"""
.open
end with
set cmd = new adodb.command
cmd.activeconnection = cn
cmd.commandtext = "CREATE TABLE MySheet (ID char(255))"
cmd.execute
这会将标题“ID”添加到新工作表的单元格 A1。如有必要,您可能会找到一种删除/更改它的方法。