Excel 按变量范围排序?

Excel 按变量范围排序?,excel,vba,variables,range,Excel,Vba,Variables,Range,我是vba新手,一直在尝试基于“usedrange”函数创建动态范围。目前我似乎有两个不同的问题,我无法找到答案: 我不知道如何将我的变量范围(gimrange)设置为整个工作表的值(我一直在使用usedrange,但我愿意接受其他建议) 一旦gimrange是一个可行的变量范围,如何在排序函数中引用它?甚至在我开始对任何变量范围使用usedrange之前,我就遇到了这个问题 有人能帮一个人吗?以下是我的代码: Worksheets("GIM").UsedRange Worksheets("G

我是vba新手,一直在尝试基于“usedrange”函数创建动态范围。目前我似乎有两个不同的问题,我无法找到答案:

  • 我不知道如何将我的变量范围(gimrange)设置为整个工作表的值(我一直在使用usedrange,但我愿意接受其他建议)

  • 一旦gimrange是一个可行的变量范围,如何在排序函数中引用它?甚至在我开始对任何变量范围使用usedrange之前,我就遇到了这个问题

  • 有人能帮一个人吗?以下是我的代码:

    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