如何在VBA中制作“原子”块?

时间:2012-11-25 09:14:29

标签: winapi vba excel-vba excel

如何将以下行作为原子操作运行:

Sheets("worksheet34").Select
Range("D15").Select
Application.WindowState = xlMaximized
SetCursorPos 200, 600 'set mouse position at 200, 600
Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) 'click left mouse
Application.SendKeys ("R")

我想确保所有行都以相同的顺序执行,彼此之间没有延迟。

上面的代码是我去特定小区并在此单元格上选择REFRESH的黑客。

Win32: Atomic Execution of Code Block

Synchronization Functions (Windows)

1 个答案:

答案 0 :(得分:1)

你做不到。您没有那么多的Excel控制权来保证它是原子的,而Excel将会响应您的消息,包括弹出菜单所需的消息泵。

了解如何在Excel VBA中执行某些操作的最佳方法是录制宏并查看生成的代码。

在您的特定情况下,单元格或范围的Calculate()方法应刷新值。