我查看了与此主题相关的所有论坛问题。我无法让我的代码工作。
这是代码。请让我知道我需要纠正什么。
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
。
使用:
Range(strDataRange).Sort Key1:=Range(strKeyRange), Order1:=xlDescending, Header:=xlNo
因为Sort方法需要Key1
parameter作为“... sort字段,作为范围名称(String)或Range对象”
我发现了这个问题。由于VBA代码与我排序的工作表不同,我需要添加工作簿参考;这是“ws”。
这是更正后的代码
ws.Range(strDataRange).Sort Key1:=ws.Range(strKeyRange), Order1:=xlDescending, Header:=xlNo
感谢你的帮助。