gpt4 book ai didi

vba - 哪个窗口处于事件状态

转载 作者:行者123 更新时间:2023-12-02 05:54:59 25 4
gpt4 key购买 nike

我有一个简短的宏,可以使用以下命令将单元格置于编辑模式:

Application.SendKeys "{F2}"

如果使用正常的功能区界面从工作表运行宏,则代码行可以正确运行(这是因为 F2 将事件单元格置于编辑模式)

如果我从 VBE 窗口运行宏,则宏会失败,因为 VBEF2 解释为调出对象浏览器。

我想在宏中包含一个测试来检查这一点:

如果工作表是事件窗口,则继续运行。
如果 VBE 是事件窗口,则发出警告 MsgBox 并中止。

我不知道如何确定哪个窗口处于事件状态。 ActiveWindow.Caption总是显示如下内容:

Book1.xlsm

最佳答案

我认为您不幸遇到了 VBE 问题。如果解决方案是避免编码时犯错误,这对您有用吗?似乎没有办法查看 activewindow 是否是我能找到的 VBE。如果此解决方案不能满足您的需求,Using VBS in WHS可能适合您或调用像 autoit 这样的外部程序。

请注意,如果您单步执行代码,它将不起作用,但我假设您实际上主要关心的是从 VBE 窗口中点击运行按钮,并且它将起作用。将第一行放在代码的顶部,或者放在包含 sendkeys 或其他内容的部分之前。

ThisWorkbook.VBProject.VBE.MainWindow.Visible = False
If ActiveWindow.Caption <> "Book1.xlsm" Then MsgBox ("Test") Else MsgBox ("testelse")

您将无法按 Alt-Tab 键返回,必须按 Alt-F11

关于vba - 哪个窗口处于事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38293998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com