行完成后,Excel VBA自动排序

时间:2018-11-21 16:31:06

标签: excel vba excel-vba

我有以下代码,但出现以下错误: 运行时错误“ 1004”: 对象“ _Worksheet”的方法“范围”失败

我似乎无法弄清楚。该错误显示在“如果不相交”行上。任何帮助将不胜感激。

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

结束子

以上代码的工作原理就像一个超级按钮(人为错误)。但是,一旦代码完成,它将带我回到表格的顶部。有没有办法使焦点集中在最后一行上?

1 个答案:

答案 0 :(得分:0)

在查看SJR和Gravitate的评论后,我重新检查了标题栏。看起来最后有一个多余的空间,一旦我删除它,代码就会按预期工作。