【发布时间】:2020-02-14 21:49:26
【问题描述】:
我在将 Excel 工作簿转换为 CSV 的 VBA 脚本中出现错误。 VBA 脚本通过 Microsoft Word VBA 脚本运行。
Private Sub CommandButton1_Click()
Dim objExcel As New Excel.Application
Dim wb_xl As Excel.Workbook
Dim wb As Excel.Worksheet
Set wb_xl = objExcel.Workbooks.Open("O:\documents\folder.xlsx")
wb_xl.SaveAs FileName:="O:\documents\folder.csv", FileFormat:=xlCSV
Set wb = objExcel.Workbooks.Open("O:\documents\folder.csv")
wb_xl.Close savechanges:=False
End Sub
这看起来很简单,正在生成 CSV,但我收到一个错误:
运行时错误“1004”:无法访问“folder.csv”
错误在第 8 行 (wb_xl.SaveAs...)。
【问题讨论】:
-
不是您真正要问的,但是....“wb”不是工作表吗?打开 .csv 文件时,您正在将工作表设置为工作簿对象。我从未尝试将工作表设置为工作簿对象,但这似乎是使用错误的对象...
-
如果您执行
SaveAs,那现在不是活动工作簿吗?如果已经打开,则无法打开。 -
但我认为@FrankBall 是正确的......可能应该将
wb重命名为ws以避免混淆并将Open 更改为实际的工作簿对象 -
@FrankBall 正确,但这是一个 type mismatch 错误,会在工作簿打开后立即抛出。
-
打开任务管理器并确保您没有在后台运行任何其他 Excel 实例。您可能已经打开了此文件的副本,并且它被保存在内存中。