设置范围 VBA 排序
Set range in VBA sort
我正在尝试对 Excel VBA 中的数据进行排序。我的 sheet 可能有可变数量的数据,因此我使用 Range.End
方法查找 sheet 的最后一行/最后一列。但是,当我尝试设置排序范围时,它会给我一个 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
根据评论编辑:
我将以下代码输入到我创建的模拟电子表格中,它似乎工作正常。评论中描述的错误: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")
构建的整个数据集
我正在尝试对 Excel VBA 中的数据进行排序。我的 sheet 可能有可变数量的数据,因此我使用 Range.End
方法查找 sheet 的最后一行/最后一列。但是,当我尝试设置排序范围时,它会给我一个 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
根据评论编辑:
我将以下代码输入到我创建的模拟电子表格中,它似乎工作正常。评论中描述的错误: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")