Excel ';范围';对象的'_全球';失败的VBA

Excel ';范围';对象的'_全球';失败的VBA,excel,vba,Excel,Vba,设置了两个日期范围。设置此范围后,我单击我的刷新数据宏,该宏将从这两个日期范围内提取数据。(即日期1-2017年1月1日。日期2-2017年1月31日)但是,我注意到,一旦我超出日期范围2017年1月19日,它将抛出一个错误,指示对象的范围已失败。我似乎无法理解这个日期的意义 我已检查我的范围是否不合格,因为我已将工作表设置为“大修计划->”,并且我没有更改工作表名称 有人知道为什么会这样吗 Sub SortFinalTable(numRows As Long) Dim sht As

设置了两个日期范围。设置此范围后,我单击我的刷新数据宏,该宏将从这两个日期范围内提取数据。(即日期1-2017年1月1日。日期2-2017年1月31日)但是,我注意到,一旦我超出日期范围2017年1月19日,它将抛出一个错误,指示对象的范围已失败。我似乎无法理解这个日期的意义

我已检查我的范围是否不合格,因为我已将工作表设置为“大修计划->”,并且我没有更改工作表名称

有人知道为什么会这样吗

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


这似乎已经解决了问题。

哪一行出现故障<代码>设置rng=sht.Range(“A5”)。调整大小(numRows+1,52)?如果是这样--当它失败时,
numRows
的值是多少?可能是
Key:=sht.Range
而不是
Key:=Range
。如果
numRows-4
小于1或大于该行,则该操作将失败limit@JohnColeman:代码在'sht.AutoFilter.Sort.SortFields.Add Key:=Range(“A5:A”&numRows-4)、SortOn:=xlSortOnValues、Order:=xlDescending、u数据选项:=xlSortNormal'行失败。行数也等于4,这对我来说没有意义,因为我认为我的数组会自动调整大小……我又看了一眼,似乎NumRows开始时是4,在我们得到+1之后,它仍然是4。该值没有改变,因此当它达到A5时,仍然是4。我不知道这是为什么。大家好,我已经解决了这个问题。实际上,我已经拿出了我的分类声明作为临时措施,一切都很好。谢谢大家的帮助!