首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >宏中的SHIFT+F9和宏刷新速度

宏中的SHIFT+F9和宏刷新速度
EN

Stack Overflow用户
提问于 2013-02-26 15:12:27
回答 1查看 3.2K关注 0票数 1

我做了两个链接的宏。

其中之一生成工作簿中某个工作表的副本。这里的问题是,我需要在所有复制的工作表中按shift+f9键来更新值。我已经使用了calculate和application.calculate = xl......

第二个宏调用第一个宏的值并对其执行操作。这里的问题是,在运行第一个宏并使用shift+f9更新所有的sheets..if之后,我使用指定的按钮运行第二个宏,它不会运行,但如果我单步执行宏并一步一步地运行它,它就可以正常运行。

我认为这是因为第一个宏的值需要时间来刷新,所以出现了这个问题。

Macro1:

代码语言:javascript
复制
Sub macro1()
Worksheets("Excel Inputs").Activate
If Sheets("Excel Inputs").Cells(11, "P") = 3 Then
    Sheets("Valuation 02").Delete
    Sheets("Valuation 03").Delete
ElseIf Sheets("Excel Inputs").Cells(11, "P") = 2 Then
    Sheets("Valuation 02").Delete
End If
Length = WorksheetFunction.CountA(Range("B13:B15"))
For i = 1 To Length - 1
    Sheets("Valuation 01").Copy After:=Sheets(4 + i)
    Sheets(4 + i + 1).Name = "Valuation 0" & (i + 1)
    Application.Calculation = xlCalculationAutomatic
Next i
    Sheets("Excel Inputs").Cells(11, "P") = Length
End Sub

有人能在这方面帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2013-02-26 15:39:32

通常我会使用Application.onTime Now + TimeValue("hh:mm:ss"),"macro2"

来解决这类问题。您可以将macro2设置为在macro1的某个延迟的情况下运行。

并确保在macro1、Application.calculation = xlCalculationAutomaticApplication.CalculateFullRebuild的末尾

如果此方法不够好,则必须使用单元格或全局变量作为监视程序,以确定是否所有计算都已完成。

例如,在marco1的末尾,继续使用Application.onTime事件检查一些单元格值<> "“,如果尚未完成,则递归调用自身。

参考:Application.OnTime Application.CalculateFullRebuild

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15083389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档