log*_*gan 2 excel vba excel-vba
我有一个excel"Closed.Xls",目前尚未打开.
请让我知道如何将新工作表添加到此已关闭的Excel文件中.我知道如何在当前的Excel中添加新工作表.
Dim WS as Worksheet
Set WS = Sheets.Add
Run Code Online (Sandbox Code Playgroud)
请让我知道如何
注意:我不想重命名工作表.
谢谢
像这样的东西会做你想要的.没有打开工作簿是不可能的,但是如果你关闭屏幕更新它会给出不打开的外观.
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
Run Code Online (Sandbox Code Playgroud)
要获取工作表名称,请使用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
Run Code Online (Sandbox Code Playgroud)
使用 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
Run Code Online (Sandbox Code Playgroud)
这会将标题“ID”添加到新工作表的单元格 A1 中。如有必要,您也许可以找到删除/更改它的方法。