我的排序功能有问题。它不起作用。如果我在手动排序时录制宏,录制的内容就像我的。 Sub看起来如下:
Public Sub sortSelectionByDate(ByRef wrksheet As Worksheet, ByVal fromRow As Integer, ByVal toRow As Integer)
'debug
toRow = toRow - 1
wrksheet.Select
wrksheet.Rows(fromRow & ":" & toRow).Select
With Selection
.Sort Key1:=Range("A9"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
End Sub
提前谢谢....
了Christoph
答案 0 :(得分:2)
它很可能无法正常工作,因为您传递的工作表不是活动工作表,不会激活它,然后尝试排序。以下是您所遇问题描述的链接:Beginning VBA: Select and Activate。简而言之,永远不会使用。选择或。选择,除非您希望您的用户能够根据他选择的选择运行代码。即便如此,仍然不是一个好主意。这是你的副本重写在一行:
Public Sub sortSelectionByDate(ByRef wrksheet As Worksheet, ByVal fromRow As Integer, ByVal toRow As Integer)
wrksheet.Rows(fromRow & ":" & toRow - 1).Sort Key1:=wrkSheet.Range("A9"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub
重要的变化是: