ActiveSheet.Range.Select返回错误462“远程服务器计算机不存在”

时间:2020-04-22 05:00:48

标签: excel vba ms-access

这应该很简单,但是在尝试许多不同的代码变体之后我看不到问题。第一次运行代码时,它将选择单元格“ B4”到列的末尾。下次运行它时,出现错误426,“远程服务器计算机不存在或不可用”。然后我再次运行它,它可以正常运行。然后下一次我得到错误。等等疯狂!

Dim g_OBJ_EXCEL_APP As Excel.Application
Dim g_OBJ_EXcel_WB As Excel.Workbook
Dim str_Cell_Ref As String, str_excel_filename As String, strSheetName as String
Dim g_OBJ_EXCEL_WS As Excel.Worksheet
    Call sForceAllExcelProcessClose 'Just to make sure its not causing a problem I kill all Excel before I start
    Set g_OBJ_EXCEL_APP = New Excel.Application
    str_excel_filename = "\\ahw.cc2.zone\ahw$\Users\rotto_ahw-global.com\Documents\Sample1.xlsx"
    Set g_OBJ_EXcel_WB = g_OBJ_EXCEL_APP.Workbooks.Open(str_excel_filename)
    strSheetName = "Sheet1"
    Set g_OBJ_EXCEL_WS = g_OBJ_EXcel_WB.Worksheets(strSheetName)
    g_OBJ_EXCEL_APP.Application.Visible = True
    str_Cell_Ref = "B4"
    g_OBJ_EXCEL_WS.Range(str_Cell_Ref, Range(str_Cell_Ref).End(xlDown)).Select 'This is where the error occurs

    Set g_OBJ_EXcel_WB = Nothing
    Set g_OBJ_EXCEL_WS = Nothing
    Set g_OBJ_EXCEL_APP = Nothing
End Sub

衷心感谢您的协助。

1 个答案:

答案 0 :(得分:0)

命令行中的Range

g_OBJ_EXCEL_WS.Range(str_Cell_Ref, Range(str_Cell_Ref).End(xlDown)).Select

不完全合格。因此它默认为ActiveSheet.Range。但是ActiveSheet可能不可用,因为代码在Microsoft Access而不是Excel内部运行。因此是错误。

g_OBJ_EXCEL_WS.Range(str_Cell_Ref, g_OBJ_EXCEL_WS.Range(str_Cell_Ref).End(xlDown)).Select

这完全可以使Range成为工作表g_OBJ_EXCEL_WS中的一个范围。