[英]'Range' of object'_Global' failed VBA
設置了兩個日期范圍。 設置此范圍后,我單擊刷新數據宏,然后從這兩個日期范圍內提取數據。 (即日期 1 - 1/1/2017。日期 2 - 31/1/2017)但是我注意到,一旦我超出日期范圍 19/1/2017,它就會拋出一個錯誤,指示對象的范圍有失敗的。 我似乎無法理解這個日期的意義。
我已檢查我的范圍是否不合格,因為我已將工作表設置為“停機時間表 ->”並且我沒有更改工作表名稱。
有誰知道為什么會這樣?
Sub SortFinalTable(numRows As Long)
Dim sht As Worksheet
Dim rng As Range
Set sht = Worksheets("Outage Schedule ->")
Set rng = sht.Range("A5").Resize(numRows + 1, 52)
sht.AutoFilterMode = False
rng.AutoFilter
On Error Resume Next
sht.AutoFilter.Sort.SortFields.Clear
On Error GoTo 0
sht.AutoFilter.Sort.SortFields.Add Key:=Range("A5:A" & numRows - 4), SortOn:=xlSortOnValues, Order:=xlDescending, _
DataOption:=xlSortNormal
sht.AutoFilter.Sort.SortFields.Add _
Key:=Range("B5:B" & numRows - 4), SortOn:=xlSortOnValues, Order:=xlAscending, _
DataOption:=xlSortNormal
With sht.AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
問題是 numRows 變量記錄的是 0 或負值,這意味着當我嘗試設置以下范圍時:
sht.range("A5")>Resize(numRows +1, 52)
....
....
....
sht.AutoFilter.Sort.SortFields.Add Key=Sht.Range("A5:A" & numRows - 4),...
由於數字為負數,范圍將始終失敗。 我通過確保 numRows 始終保持 +ve 來解決這個問題,因此范圍可能下降到的最低數字是 1。
這似乎暫時解決了這個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.