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