温馨提示:本文翻译自stackoverflow.com,查看原文请点击:sql - Copy and add a sheet to a closed workbook
excel sql vba excel-vba

sql - 复制工作表并将其添加到已关闭的工作簿中

发布于 2020-03-27 11:29:43

使用SQL,我可以访问和编辑Excel工作簿中的单元格,而无需在vba脚本中打开它们。但是,我还没有找到以类似方式复制或添加工作表的方法。Atm我使用Workbook.Open和Copy来完成它。这可能吗?

查看更多

查看更多

提问者
Frans Bstrom
被浏览
140
Felix Exner 2019-07-03 22:48

我遇到了同样的问题,并搜索了数小时,直到使用ADODB-Connection Object找到了这个问题:

path= <yourFilePath>
set cn = new ADODB.connection

'create connection String
connStr="Provider=Microsoft.ACE.OLEDB.12.0; & _
        "Data Source=" & path & ";" & _
        "Extended Properties='Excel 12.0;HDR=YES;"";ReadOnly=0'"

cn.Open connStr
set cmd = new adodb.command
cmd.ActiveConnection = cn

'create sql-string
cmd.CommandText = "CREATE TABLE [<TableName>] (<anyString> char(255))"
cmd.Execute

参见:VBA在关闭的excel中添加新工作表而无需打开并获取工作表名称?

我认为这是您和其他偶然发现此帖子的人所寻找的。

此外,您可以创建一个字符串INSERT INTO [<TableName>$] VALUES('<values>')以将一些数据添加到工作表。