我已经检查了所有与该主题有关的论坛问题。我无法使我的代码正常工作。
这是代码。请让我知道我需要纠正什么。
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
strDataRange
是B5:M18
。
strKeyRange
是B5:B18
。
答案 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
感谢您的所有帮助。