我從本網站複製了一些代碼,我認爲這樣可以解決我試圖解決的問題。我從Using Sort in VBA for a Range that Changes 複製了原始代碼我只是將更改的數據的左上角定義爲單元格A3中的變化做了很少的工作。最終的代碼如下運行:「運行時錯誤1004:排序參考無效」
Sub sortOnlySelectedArea()
Dim actSheet As Worksheet
Dim upper, lower As Integer
Dim tempString As String
Dim selectedArea As Range
Set actSheet = Application.Worksheets("Sheet1")
' here you have to put in your part to make the right
'actSheet.Range("E5:G6").Select
ActiveSheet.Range("a3").CurrentRegion.Select
Set selectedArea = Selection
upper = selectedArea.Row
lower = upper + selectedArea.Rows.Count - 1
tempString = "F" & CStr(upper) & ":F" & CStr(lower)
actSheet.Sort.SortFields.Clear
actSheet.Sort.SortFields.Add Key:=Range(tempString), _
SortOn:=xlSortOnValues, Order:=xlAscending,
DataOption:=xlSortNormal
With actSheet.Sort
.SetRange selectedArea
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
我的問題是代碼幾乎在最後失敗。我已經完成了代碼,它正確地提取了數據區域。它到達時會失敗最後只有一行(.Apply)被突出顯示。調試消息指示運行時錯誤1004:排序引用無效。 我無法很好地跟蹤代碼,看看如何選擇排序範圍。理想情況下,我希望能夠對C列進行排序,但如果需要的話,可以在列A中進行排序。我試圖分類的範圍是A3:F105。
'輸入代碼here' – 2015-02-23 20:21:08
假設你正在使用Range.CurrentRegion你有A3內的任何空白行/列:F105?請參閱https://msdn.microsoft.com/en-us/library/office/aa214248%28v=office.11%29.aspx – barryleajo 2015-02-23 20:53:20