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

我正在尝试做一些相当平常的事情:按照其中之一的升序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) 

我的代码看起来很无辜,但不是sorting数据,而是将每个值声明为TRUE布尔值。 我不知道为什么会发生这种情况。

在我尝试实现自动sorting之前,我的整个模块工作正常,所以我宁愿不要更改我的variables和variablestypes。

在此先感谢您的帮助!

代替

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

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

范围的sorting发生在位。 所以,你不必重新分配Sort的值到原来的范围。