当我使用宏进行排序时,所有引用都变成#REF

When I use a macro to sort, all references become #REF

我构建了一个宏,它会在我每次触发它时自动为我对大部分单元格进行排序。不幸的是,当我 运行 这个宏时,我的许多引用都从原来的(即 $B$7)更改为 #REF!。我想知道我的宏脚本是否有问题,或者是否还有其他我应该调查的地方。这是代码:

Sub Sort()
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range(_
        "Q8:Q1000000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=_
        xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet1").Sort
        .SetRange Range("Q8:W1000000")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

我找到了解决办法。这并不理想,尽管它有效。我将所有引用更改为绝对引用,现在当我排序时,它们不再变成奇怪的空引用 #REF!。考虑到有 700 万个公式需要编辑,我使用了一个我发现 here 的宏来大大加快这个过程。 mikerickson 提供的宏。

如果有人知道另一种解决方案比必须更改所有参考文献更好,请随时为可能有相同问题的其他人留下答案,尽管我不再需要有关此问题的任何指导。

谢谢