尝试使用VBScript将XLS转换为CSV和CSV到XLS。 接收错误:800A03EC(无法获取Workbooks类的Open属性)
我试图打开CSV,然后使用SaveAs方法将其另存为XLS。 反之亦然,在另一个脚本。 我不小心以前的文件格式代码错误,并没有得到这个错误。 CSV实际上是开放的。 我不小心做了CSV格式2(这实际上是SYLK)和XLS,6(实际上是CSV)。
我已经看遍了所有,我能find的大部分与使用不正确的参数(我已经多次检查)有关。 其余的是ASP,并build议改变组件服务的权限(这可能不会是一个问题,因为我可以让Open方法使用不同的格式)。
所以我不知如何进行。 如果我甚至不能使用Open方法,那么我有点卡住了。 如果SaveAs方法不适用于这个任务,我可以解决这个问题。 但我需要能够打开使用Open方法的XLS(因为我也试图做XLS到CSV)。 可能以另一种方式修复CSV到XLS,因为Open方法有时似乎有效。
无论如何,我的CSV到XLS代码如下。 XLS到CSV与此基本相同。 它只是翻转格式代码,并为文件使用不同的path。
strName = "MidCSVTemp.csv" strSaveName = Month(Now) & "." & Day(Now) & "." & Year(Now) & ".xls" strPath = "C:\Users\adam\Documents\" & strName strSavePath = "C:\Users\adam\Documents\" & strSaveName 'Options for Workbook.Open intUpdateLinks = 0 boolReadOnly = False intFormat = 6 'Options for SaveAs intFileFormat = 56 Set objExcel = CreateObject("Excel.Application") Set objWorkBook = objExcel.Workbooks.Open(strPath,intUpdateLinks,boolReadOnly,intFormat) Call objWorkBook.SaveAs(strSavePath,intFileFormat) Call objWorkbook.Close
我认为问题在于你正在使用Workbooks.Open()
方法的Format
参数,就像FileFormat
参数一样。 它不应该是xlCSV
(6)
,这是一个FileFormat
常量。 根据文档 , Format
应该是以下值之一:
- 1 =制表符
- 2 =逗号
- 3 =空格
- 4 =分号
- 5 =没有
- 6 =自定义
由于您传递的值是6
,所以期望您也包含Delimiter
参数。 既然你不包括它,你会得到一个错误。
您应该能够打开一个CSV而不指定Format
参数(Excel似乎正确地猜测分隔符而不必指定它)。 但是,为了安全起见,请为逗号分隔(CSV)文件传递值2。
intFormat = 2 Set objWorkBook = objExcel.Workbooks.Open(strPath,intUpdateLinks,boolReadOnly,intFormat)