我正在VB6中的一个项目上工作(不,我不能迁移到.NET),该项目涉及打开Excel文件并对其进行写入。
这一切都很好,没有太大问题,但是,如果用户关闭Excel文件,则会收到以下错误消息:
运行时错误'1004'
对象'_Global'的方法'行'失败
此错误的代码为:
Public Sub LogValues()
Dim rowNum As Integer
Dim tempNum As Integer
rowNum = sheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
tempNum = sheet.Cells(Rows.Count, 2).End(xlUp).Row + 1
'Other stuff
End Sub
显然,该错误来自excel工作簿被关闭并且不再存在于内存中。找到当前问题的解决方案是我当前的问题。
我该如何检查工作簿是否仍处于打开状态,如果未打开,则将其打开?
答案 0 :(得分:3)
尝试使用工作簿,并在关闭时捕获错误。
sub workOnWb()
on error goto not_open
with workbooks("mybook1.xlsx")
on error goto 0
'work with it
end with
exit sub
not_open:
if err.number = 1004 then
workbooks.open("c:\mybook1.xlsx")
resume
else
debug.print err.number & ": " & err.description
end if
end sub
您还可以做很多事情,但这涵盖了一般查询的基础。