排序范围,Excel表示范围为空

时间:2017-06-16 08:52:26

标签: excel vba excel-vba sorting

我尝试对一个范围(包含3列)进行排序我想对第二列上的数据进行排序,如果该列中有两个相同的内容,我希望它通过第一列对其进行排序。

第二列和第一列始终填写。

这是我使用的行,但我一直收到错误:

  

运行时错误1004:排序参考无效,请确保它在您要排序的数据中,并且第一个排序依据框不相同或为空

Target.Sheets("SheetToSort").Range("A1:C" & m).Sort Key1:=Range("B1:B" & m), Order1:=xlAscending, key2:=Range("A1:A" & m), order2:=xlAscending

目标是已定义的工作簿,工作表存在,单元格"A1:C" & m包含数据只有列C可能有空格但我不对该列进行任何排序。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我只是确保你的所有范围都引用同一张,所以请修改如下:

Target.Sheets("SheetToSort").Range("A1:C" & m).Sort _
Key1:=Target.Sheets("SheetToSort").Range("B1:B" & m), Order1:=xlAscending, _
Key2:=Target.Sheets("SheetToSort").Range("A1:A" & m), Order2:=xlAscending

我知道在发生这种情况之前我已经遇到了问题,因为Range对象,当您没有指定工作表时,可能指向不同于您想象的工作表。