ActiveSheet.Range.Select возвращает ошибку 462 Удаленный серверный компьютер не существует

Это должно быть просто, но я не вижу проблемы после того, как попробовал много разных вариантов кода. В первый раз, когда я запускаю код, он выбирает ячейку «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

Мы искренне ценим любую помощь.


person Kaiser Otto    schedule 22.04.2020    source источник


Ответы (1)


Range в командной строке

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

не полностью квалифицирован. Так что по умолчанию это ActiveSheet.Range. Но ActiveSheet может быть недоступен, потому что код выполняется внутри Microsoft Access, а не Excel. Отсюда и ошибка.

Do

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

Это полностью квалифицирует Range как диапазон в листе g_OBJ_EXCEL_WS.

person Axel Richter    schedule 22.04.2020