Сбой макроса Excel с ошибкой «1004» при активации ячейки листа из нескольких открытых книг, но работает в отладчике - PullRequest
0 голосов
/ 18 марта 2020

У меня есть макрос VBA, который позволяет пользователю искать значение в многочисленных книгах. Результаты поиска затем отображаются в списке в форме поиска макросов. Если щелкнуть строку в этом списке, строка в соответствующей книге Excel должна активироваться и отобразиться в соответствующей ячейке. Однако я получаю ошибку 1004 в коде range.activate (rngCell.Activate), который активирует ячейку в рабочей книге. Я проверил этот код с помощью отладчика, и он не обрабатывает sh, однако он вылетает при использовании его в противном случае. Есть ли какое-либо решение, которое я мог бы использовать для этого?

Private Sub lbxFinds_Change()
'Private Sub lbxFinds_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    Dim wbName As String
    Dim wsName As String
    Dim cellAddress As String
    Dim cellContent As String
    Dim Wb As Workbook
    Dim Ws As Worksheet
    Dim rngCell As Range

    With Me.lbxFinds
        If .ListIndex < 0 Then Exit Sub
        If .List(.ListIndex, 0) = "Text not found." Then Exit Sub
        wbName = .List(.ListIndex, 0)
        wsName = .List(.ListIndex, 1)
        cellAddress = .List(.ListIndex, 2)
        cellContent = .List(.ListIndex, 3)
    End With

    Set Wb = Workbooks(wbName)
    Set Ws = Wb.Worksheets(wsName)
    Set rngCell = Ws.Range(cellAddress)

    Wb.Activate
    Ws.Activate
    rngCell.Activate
    Me.lbxFinds.SetFocus

    Set Wb = Nothing
    Set Ws = Nothing

End Sub

Это изображение формы поиска макроса поиска

...