Excel VBA Автосортировка после завершения строки - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть следующий код, но я получаю следующую ошибку: Ошибка во время выполнения '1004': сбой метода 'Range' объекта '_Worksheet'

Кажется, я не могу понять это.Ошибка появляется в строке If Not Intersect.Любая помощь будет принята с благодарностью.

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveWorkbook.Worksheets("Log").ListObjects("Table1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Log").ListObjects("Table1").Sort.SortFields. _
    Add Key:=Range("Table1[[#ALL],[Date]]"), SortOn:=xlSortOnValues, Order _
    :=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Log").ListObjects("Table1").Sort.SortFields. _
    Add Key:=Range("Table1[[#All],[Time]]"), SortOn:=xlSortOnValues, Order _
    :=xlAscending, DataOption:=xlSortNormal
If Not Intersect(Target, Range("Table1[[#All],[Associate]]")) Is Nothing Then
    With ActiveWorkbook.Worksheets("Log").ListObjects("Table1").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End If

End Sub

Приведенный выше код работает как чудо (человеческая ошибка).Однако, как только код закончен, он возвращает меня к вершине таблицы.Есть ли способ сохранить фокус на последнем завершенном ряду?

1 Ответ

0 голосов
/ 21 ноября 2018

После просмотра комментариев SJR & Gravitate я перепроверил мой заголовок столбца.Похоже, в конце был дополнительный пробел, который, как только я его удалил, работал код, как и предполагалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...