从MS Access检查Excel中是否存在命名范围

时间:2017-09-29 10:17:49

标签: excel vba ms-access access-vba

我在Access中使用以下VBA导入一个名为' Drop'但是,在Excel中,如果Excel中存在Drop范围,我该如何首先检入Access:

DoCmd.TransferSpreadsheet , acSpreadsheetTypeExcel12, "tblCustomerImportDrop", ExcelFilePath, True, "Drop"

或者,有没有办法来抑制错误3011(当它找不到范围时生成)并继续我的代码?

2 个答案:

答案 0 :(得分:0)

在VBA中抑制错误非常简单:

只需在导致错误的行之前添加On Error Resume Next,如果要查看所有其他行的错误,请在其后面添加On Error GoTo 0

检查Excel中是否存在范围,但要求您拥有Microsoft Excel对象库,打开Excel应用程序,然后关闭它,除非通过错误捕获完成(我可以向您显示错误捕获和如果感兴趣的话,非错误陷阱方法。

答案 1 :(得分:0)

        Sub usage_example()
        fpath = "d:\names_test.xlsx"
        findedname = "xxxx"
        ret = existname(fpath, findedname)
        End Sub

        Function existname(fpath, findedname) As Boolean
            Set xlapp = CreateObject("Excel.application")
            Set wb = xlapp.workbooks.Open(fpath)
            existname = False
            For Each nn In wb.names
                If nn.Name = findedname Then
                    existname = True
                    Exit For
                End If
            Next nn
        wb.Close
        Set wb = Nothing
        Set xlapp = Nothing
        End Function