0

这是有效的:

Columns("A:L").Sort Key1:=Range("L1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

我需要:

Columns("A:L").Sort ***Key1:=Range("W1")***, Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom

产生错误是正常的!我不想Columns("A:W").Sort

我需要使用 VBA 按 W1 上的值对 A:L 进行排序

4

1 回答 1

2

好吧,从逻辑上讲,按 W 列对 A:L 进行排序是不可能的,而在排序中包括 W 列。如果这样做,您可以重复相同的排序过程,A:L 会再次被打乱为不同的顺序!
因此,唯一看似合理的事情是对 A:L,W:W 进行排序,但 Excel 无法做到这一点(在我知道的版本中,只有一个连续区域)。唯一的解决方案:复制 L 旁边的 W:W 并排序 A:M。

于 2013-05-09T12:35:11.620 回答