【发布时间】:2018-12-28 02:46:51
【问题描述】:
我构建了一个宏,它会在我每次触发它时自动为我排序大部分单元格。不幸的是,当我运行这个宏时,我的许多引用都从原来的(即 $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
【问题讨论】:
-
第 7 行不受此脚本的影响,无论是在概念上还是在执行中
-
我看不出代码有什么明显的错误……我猜它与内容有关。您能否分享一些涉及的值/公式,甚至附上演示该问题的电子表格的缩略版本?
-
这个SO Sort Question 可以帮助你。
-
我了解到,如果公式中使用了工作表的名称,如果要对结果进行排序,则应将其删除。
-
在对大多数公式进行排序之前,遵循 =IF(ISBLANK(M11),NA(),M11) 的格式,在它们说 IF(ISBLANK(#REF!),NA(),# 之后参考!)。
标签: excel vba sorting excel-formula excel-2010