设置了两个日期范围。设置此范围后,单击我的刷新数据宏,然后从这两个日期范围中提取数据。 (即日期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
答案 0 :(得分:1)
问题是numRows变量记录的是0或负值,这意味着当我尝试设置以下范围时:
sht.range("A5")>Resize(numRows +1, 52)
....
....
....
sht.AutoFilter.Sort.SortFields.Add Key=Sht.Range("A5:A" & numRows - 4),...
由于数字为负数,范围总是会失败。我通过确保numRows始终保持+ ve来解决这个问题,因此范围可能下降到的最小数字是1.
目前这似乎解决了这个问题。