复制并将工作表添加到已关闭的工作簿

时间:2017-06-21 14:34:09

标签: sql vba excel-vba excel

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

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,并搜索了数小时,直到使用ADODB连接对象找到了这个问题:

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 to add new sheet in a closed excel without opening & get the sheet name added?

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

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