我正在尝试在Excel VBA中对数据进行排序。我的工作表可能有不同数量的数据,因此我使用Range.End
方法查找工作表的最后一行/列。但是,当我尝试设置排序的范围时,它给了我一个Object Required错误,我不知道为什么。我在下面粘贴了我的代码。任何帮助将不胜感激。
With Sheet9.Sort
.SetRange (Sheet9.Range("A1").CurrentRegion)
.SortFields.Clear
.SortFields.Add Key:=rng2, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
答案 0 :(得分:1)
基于评论编辑:
我将下面的代码输入到我创建的模拟电子表格中,似乎工作正常。注释中描述的错误:Sort Reference is not valid
表示定义密钥可能存在问题。尝试使用我的代码(替换必要的信息)并让我知道它是否有效。
Sub Doit()
Set rng2 = Sheet1.Range("A1:A5")
With Sheet1.Sort
.SortFields.Clear
.SortFields.Add Key:=rng2, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange Sheet1.Range("A1").CurrentRegion
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
基于对行和列使用.End
的能力,我假设您有一个连续的数据集。如果是这样,只需使用:
Range("A1").CurrentRegion
设置您的范围对象。
这可以识别围绕Range("A1")