gpt4 book ai didi

excel - 排序多列excel VBA

转载 作者:行者123 更新时间:2023-12-04 19:51:36 25 4
gpt4 key购买 nike

这是我的代码

Sub SortMultipleColumns(myline As String)

With Worksheets("Result-Inactive").Sort
.SortFields.Add Key:=Range("A1"), Order:=xlAscending
.SortFields.Add Key:=Range("D1"), Order:=xlAscending
.SortFields.Add Key:=Range("J1"), Order:=xlAscending
.SetRange Range("A1:C" & myline)
.Header = xlYes
.Apply
End With

End Sub

我收到以下错误,我不明白为什么“运行时错误'1004'排序引用无效。确保它在您要排序的日期内,然后首先按框排序不相同或空白。当我点击调试。.apply 被高亮显示

有什么建议么?

最佳答案

只是在这里重申 Jeeped 的答案,但略有不同:

1) myline应该真正定义为 Long 或 Integer

2) 用 Key:=Range("A1") 声明的范围应该定义为同一个工作表

3) D 的 key 和 J.setRange 之外同样,也应将其定义为在同一个工作表上

我坚持使用相同的代码,但添加了 ws工作表定义到所有范围,并将您的设置范围更改为最多包含 J

Sub SortMultipleColumns(myline As Long)

Dim ws As Worksheet: Set ws = ThisWorkbook.Worksheets("Result-Inactive")

With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=ws.Range("A1"), Order:=xlAscending
.SortFields.Add Key:=ws.Range("D1"), Order:=xlAscending
.SortFields.Add Key:=ws.Range("J1"), Order:=xlAscending
.SetRange ws.Range("A1:J" & myline)
.Header = xlYes
.Apply
End With

End Sub

我假设 myline是因为有时您只想对一组数据的顶部进行排序。我还在 clear 中添加了一行所有排序字段,以防万一您在此表上运行许多不同的排序器。

关于excel - 排序多列excel VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52619676/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com