Excel VBA用公式排序-错误1004

时间:2018-09-15 15:27:05

标签: excel vba sorting

我已经检查了所有与该主题有关的论坛问题。我无法使我的代码正常工作。

这是代码。请让我知道我需要纠正什么。

Dim strDataRange As String
Dim strKeyRange As String

strDataRange = "B" & strStartRow & ":M" & strLastRow
strKeyRange = "B" & strStartRow & ":B" & strLastRow

Range(strDataRange).Sort Key1:=strKeyRange, Order1:=xlDescending,   Header:=xlNo

strDataRangeB5:M18

strKeyRangeB5:B18

2 个答案:

答案 0 :(得分:1)

使用:

Range(strDataRange).Sort Key1:=Range(strKeyRange), Order1:=xlDescending, Header:=xlNo

因为Sort方法希望将Key1参数作为“ ... sort字段,作为范围名称(字符串)或Range对象”

答案 1 :(得分:0)

我发现了问题。由于VBA代码与我排序的地方不在同一工作表上,因此我需要添加工作簿引用;就是“ ws”。

这是更正的代码

 ws.Range(strDataRange).Sort Key1:=ws.Range(strKeyRange), Order1:=xlDescending, Header:=xlNo

感谢您的所有帮助。