在vba中错误'排序方法超出范围'

时间:2016-04-15 07:29:41

标签: vba excel-vba excel

我收到Sort method out of range错误。一开始我得到了同样的错误,在我的代码增强后,我还没有看到这个错误。

现在再次执行时它会显示相同的错误。这不是有效的编码方式吗?

With Master_workbook.Worksheets("warehouse")

         'Last row and last column in worksheet("warehouse")

            Ws1_Lrow = .Cells.Find("*", .Range("A1"), xlFormulas, , xlByRows, xlPrevious).Row
            Ws1_Lcol = .Cells.Find("*", .Range("A1"), xlFormulas, , xlByColumns, xlPrevious).Column
            Set rngFilter = .Range(.Cells(1, 1), .Cells(Ws1_Lrow, Ws1_Lcol))

                Selection.Sort Key1:=Range("W2"), Order1:=xlDescending, Header:=xlGuess, OrderCustom:=1, Orientation:=xlTopToBottom

            Master_workbook.Worksheets("warehouse").Columns("Z:Z").Cut
            Master_workbook.Worksheets("warehouse").Columns("U:U").Insert Shift:=xlToRight 
end with

1 个答案:

答案 0 :(得分:0)

  1. Selection更改为rngFilter
  2. Key1:=Range("W2")更改为Key1:=.Range("W2")注意范围之前的点?
  3. 如果工作表中没有数据,那么您尝试查找行和列的方式会给您一个错误。您可能希望查看This
  4. 确保Range("W2")位于rngFilter范围内。您可以使用Intersect进行检查