使用Microsoft.ACE.OLEDB.12.0设置工作表名称

时间:2018-12-27 17:40:42

标签: vbscript oledb

以下作品:

cnStg = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & oFile.Path & "; Extended Properties='Excel 12.0 Xml;HDR=YES';"
cn.Open cnStg 
Set adoWbkAsDatabase = CreateObject("ADOX.Catalog")
adoWbkAsDatabase.ActiveConnection = cn

For i = 0 To adoWbkAsDatabase.Tables.Count
    If Mid(adoWbkAsDatabase.Tables(i).Name, 2, 10) = "XXXXXX XXX" Then
        vSheetName = Split(Trim(Mid(adoWbkAsDatabase.Tables(i).Name, 12, 100)), "$")(0)

但以下内容:

Set adoWbkAsDatabase.Tables(i).Name = "XXXXXX XXX"

给予

  

Microsoft VBScript运行时错误:所需对象:“ adoWbkAsDatabase.Tables(...)。Name”`

我知道我的方法不起作用,但是有没有办法使用Provider=Microsoft.ACE.OLEDB.12.0'来更改工作表的名称?

1 个答案:

答案 0 :(得分:0)

据我所知,无法通过OLE数据库接口重命名Excel工作表。为此,您需要使用Excel COM对象(即,在运行脚本的计算机上有效的Excel安装):

Set xl = CreateObject("Excel.Application")
Set wb = xl.Workbooks.Open(oFile.Path)

wb.Sheets(1).Name = "XXXXXX XXX"

wb.Save
wb.Close
xl.Quit