所以我使用下面的代码对工作表进行排序,它的工作原理......但是只有当你在工作表上时它才会尝试排序。如果您不是,则发送错误:
运行时错误“1004”:排序参考无效。确保 它在您要排序的数据中,以及第一个排序框 是不一样的或空白。
我将需要隐藏此工作表,因此将其激活并不是一个真正的选择。我在代码中错过了一行吗?
由于
CODE:
Sheet23.Columns("A:C").Sort key1:=Range("A2"), order1:=xlAscending, _
key2:=Range("B2"), order2:=xlDescending, Header:=xlYes
答案 0 :(得分:2)
您应始终使用工作表限定Range()或Cells(),否则它们将引用ActiveSheet:
Sheet23.Columns("A:C").Sort key1:=Sheet23.Range("A2"), order1:=xlAscending, _
key2:=Sheet23.Range("B2"), order2:=xlDescending, _
Header:=xlYes
答案 1 :(得分:0)
您正在使用参考单元格的相对参考:
Sheet23.Columns("A:C").Sort key1:=Range("A2"), order1:=xlAscending, _
key2:=Range("B2"), order2:=xlDescending, Header:=xlYes
=Range("A2")
将始终引用活动表。
ThisWorkbook.Sheets("Sheet23").Columns("A:C").Sort key1:=ThisWorkbook.Sheets("Sheet23").Range("A2"), order1:=xlAscending, _
key2:=ThisWorkbook.Sheets("Sheet23").Range("B2"), order2:=xlDescending, Header:=xlYes
应该给你想要的结果。