VBA - .Sort方法将数据转换为TRUE

时间:2017-06-02 13:20:00

标签: excel vba excel-vba sorting

我正在尝试做一些非常平常的事情:按照其中一个的升序排列两个相关的范围。

我有一个范围从单元格A3开始,长度可变,另一个在单元格B3上,长度可变(假设相等)

With Worksheets(SheetName)
Set range1 = .Range("A3", .Range("A3").End(xlDown))
Set range2 = .Range("B3", .Range("B3").End(xlDown))
End With

Range(range1 , range2) = Range(range1 , range2).Sort(Key1:=range1, Order1:=xlAscending)

我的代码看起来很无辜,但它没有对数据进行排序,而是将每个值声明为TRUE布尔值。我不知道为什么会这样。

在我尝试实现自动排序之前,我的整个模块工作正常,所以我宁愿不要更改我的变量和变量类型。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

而不是

Range(range1 , range2) = Range(range1 , range2).Sort(Key1:=range1, Order1:=xlAscending)

DO

Range(range1 , range2).Sort Key1:=range1, Order1:=xlAscending

范围的分类就位。因此,您无需将Sort的值重新指定为原始范围。