VB6检查Excel工作簿是否打开

时间:2018-07-10 15:30:55

标签: excel vb6

我正在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工作簿被关闭并且不再存在于内存中。找到当前问题的解决方案是我当前的问题。

我该如何检查工作簿是否仍处于打开状态,如果未打开,则将其打开?

1 个答案:

答案 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

您还可以做很多事情,但这涵盖了一般查询的基础。