我在Access中使用以下VBA导入一个名为' Drop'但是,在Excel中,如果Excel中存在Drop范围,我该如何首先检入Access:
DoCmd.TransferSpreadsheet , acSpreadsheetTypeExcel12, "tblCustomerImportDrop", ExcelFilePath, True, "Drop"
或者,有没有办法来抑制错误3011(当它找不到范围时生成)并继续我的代码?
答案 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