Excel 按变量范围排序?
我是vba新手,一直在尝试基于“usedrange”函数创建动态范围。目前我似乎有两个不同的问题,我无法找到答案:Excel 按变量范围排序?,excel,vba,variables,range,Excel,Vba,Variables,Range,我是vba新手,一直在尝试基于“usedrange”函数创建动态范围。目前我似乎有两个不同的问题,我无法找到答案: 我不知道如何将我的变量范围(gimrange)设置为整个工作表的值(我一直在使用usedrange,但我愿意接受其他建议) 一旦gimrange是一个可行的变量范围,如何在排序函数中引用它?甚至在我开始对任何变量范围使用usedrange之前,我就遇到了这个问题 有人能帮一个人吗?以下是我的代码: Worksheets("GIM").UsedRange Worksheets("G
Worksheets("GIM").UsedRange
Worksheets("GIM").UsedRange.Select
Dim gimrange As Range
Set gimrange = "worksheets(""GIM"").UsedRange"
ActiveWorkbook.Worksheets("GIM").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("GIM").Sort.SortFields.Add Key:=gimrange, _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("GIM").Sort.SortFields.Add Key:=gimrange, _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
假设要按A列和B列对整个工作表进行排序,代码可能如下所示:
Dim ws As Worksheet
Set ws = Worksheets("sheet2")
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("A1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=Range("B1"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange ws.UsedRange
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
不一定要使用工作表变量,但我更喜欢这样做,因为调整代码要容易得多Try
Set gimrange=Worksheets(“GIM”)。改用drange
。