Excel VBA自动排序与手动计算

Excel VBA Auto Sort with Manual Calculation

提问人:AesusV 提问时间:1/11/2022 更新时间:1/11/2022 访问量:138

问:

我有一个工作簿,其中有很多数组公式处于活动状态,因此我关闭了自动计算,以便让一些较小的公式更快地运行。这需要我添加VBA代码来调用某些范围,以根据某些条件进行计算。

我目前在一个范围内有一些公式,如果下拉列表中出现一个值,它们将被清空,这是我的解决方法,可以过滤掉两个以上的条件。

我目前的问题是我希望能够调整下拉列表以在列表末尾放置空白(即过滤器降序 Z-A),但我不知道如何组合.使用 排序。算。

TL:DNR 开启了手动计算,需要 VBA 在公式运行后触发计算,以自动排序递减。

    If Target.Address = "$F$19" Then                               
        Sheets("DO NOT DELETE").Range("P3:P33").Calculate          'Calculating formulas in range
                Range("P3", Range("P3").End(xlDown)).Sort Key1:=Range("P3"), Order1:=xlDescending, Header:=xlYes
'Data set begins on P3 with a header in P2
        Sheets("DO NOT DELETE").Range("P3:P33").Calculate

在 F19 中选择值时,P3:P33 中的公式可以毫无问题地运行,但不会自动排序......

我的想法是添加另一个.计算指令,以便它有望进行排序,但没有骰子。

我也尝试过以这种方式编写代码,以防我在上面写错了(虽然 我没有收到任何错误)

Sheets("DO NOT DELETE").Range("VAL_TECHNOLOGY").Sort Key1:=Range("P2"), Order1:=xlDescending

这将返回 1004 运行时错误,指出排序引用无效。

如果有人能提供一些指导,我将不胜感激。

谢谢

Excel VBA 排序

评论

0赞 FunThomas 1/11/2022
您的 1004 来自您指定的范围不合格,因此它取自活动工作表,而不是来自工作表。key1DO NOT DELETE
0赞 AesusV 1/11/2022
啊,这修复了它,它现在正在正确更新!感谢您的看一看和真诚的帮助!

答: 暂无答案