我的动态范围rng2
来自A4:F?
。我尝试调整此站点的代码,但在尝试对其进行排序时不断出现错误。 Officers
是一个字符串"E1:E" & last row
。 Tgroup
是字符串"D1:D" & last row
。
rng2.Sort key1:=Range(officers), Order1:=xlAscending, _
key2:=Range(tgroup), order2:=x1Ascending, Header:=x1No
来自评论:
i
是早期使用的计数器&在最后一行下面一行。
Dim officers As String, tgroup As String, sArea As String, rng2 As Range
officers = "E1:E" & (i - 4)
tgroup = "D1:D" & (i - 4)
sArea = "A4:F" & (i - 1)
Set rng2 = rng.Range(sArea)
rng2.Sort key1:=Range(officers), Order1:=xlAscending, _
key2:=Range(tgroup), order2:=xlAscending, Header:=xlNo
rng
是A1:F?
的范围,但合并了单元格,这就是我rng2
的原因。
答案 0 :(得分:0)
假设要排序的数据(没有标题)从ActiveSheet
的第4行开始,请将officers
和tgroup
的定义更改为:
officers = "E4:E" & (i - 1)
tgroup = "D4:D" & (i - 1)
sArea = "A4:F" & (i - 1)
'and probably best to set the sort area based on the sheet itself
'to be consistent with how you have defined the keys
Set rng2 = Range(sArea)
答案 1 :(得分:0)
排序无法正常工作的原因并不像@ YowE3k建议的那样。答案是我没有准确定义该类型的范围部分。解决方案是:
rng2.Sort key1:=rng2.Range(officers), Order1:=xlAscending, _
key2:=rng2.Range(tgroup), order2:=xlAscending, Header:=xlNo
我没有使用rng2.Range所以它得到了错误的区域&无法分类。