VBA在关闭的excel中添加新工作表,而无需打开&;是否添加工作表名称?
我有一个excel“Closed.Xls”,当前未打开 请告诉我如何将新工作表添加到此已关闭的excel文件中。我知道如何在当前excel中添加新工作表VBA在关闭的excel中添加新工作表,而无需打开&;是否添加工作表名称?,vba,excel,Vba,Excel,我有一个excel“Closed.Xls”,当前未打开 请告诉我如何将新工作表添加到此已关闭的excel文件中。我知道如何在当前excel中添加新工作表 Dim WS as Worksheet Set WS = Sheets.Add 请让我知道怎么做 使用VBA在关闭的excel中添加新图纸,然后 获取添加的工作表的名称 注意:我不想重命名工作表 谢谢像这样的东西可以满足你的需要。不打开工作簿是不可能的,但如果关闭屏幕更新,则显示未打开 Option Explicit Sub Add_Shee
Dim WS as Worksheet
Set WS = Sheets.Add
请让我知道怎么做
谢谢像这样的东西可以满足你的需要。不打开工作簿是不可能的,但如果关闭屏幕更新,则显示未打开
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
要获取工作表名称,请使用
工作表变量,即
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
这将在新工作表的单元格A1中添加标题“ID”。如果需要,您可能会找到删除/更改它的方法。为什么不打开它(通过VBA),创建新工作表并关闭它?据我所知,如果不打开工作簿,您就不能修改它。@Alexandre:工作表不应该出现。@logan然后关闭屏幕更新,打开文件,添加工作表,关闭工作表,再打开屏幕更新。您在这里问了一个非常类似的问题:原理是一样的。@AlexandreP.Levasseur:我知道,但是我想得到新添加的工作表的名称。这就是为什么发布一个新的帖子(请删除下来),请让我知道答案?我如何才能得到新创建的工作表名称?例如:活页5。。我不想给这张纸重新命名。我说,我不想说出我的名字。我只想知道新添加的工作表的名称。。