问题标签 [vbe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何预先确定访问属性是否会导致 AccessViolation?
我在 Rubberduck(一个进程中的 VBE 插件)中有一个方法,它将图片和蒙版分配给CommandBarControl
(按钮)。它在将图像添加到 Excel、Word 等的 VBE 时效果很好,但在将图像添加到 SolidWorks VBE 时它会因访问冲突而失败。
我从KB286460 了解到- 如何为 Office XP 命令栏设置遮罩和图片属性
Mask 和 Picture 属性定义为类型 IPictureDisp,它是 Stdole 库的成员。IPictureDisp 使用无法跨进程边界编组的方法。因此,Mask 和 Picture 属性只能在进程内调用(VBA 宏、自动化插件和 ActiveX DLL在进程内运行)。
我从如何处理 AccessViolationException中知道我可以用HandleProcessCorruptedStateExceptions
属性装饰方法,但我认为我不想继续使用损坏的状态。也许这个腐败的国家是良性的,我可以继续吗?
有趣的是,Visual Studio 的 Autos 窗口Picture
可以毫无问题地处理访问异常:
似乎 SolidWorks VBE 在某种程度上没有将 Rubberduck 视为与 CommandBarButtons 处于同一进程中。这表明其他 VBE 主机可能会这样做。
编辑我不确定它是否相关,但我在 Windows 10 下运行旧版本的 SolidWorks 2006,为了使其运行,我已将其配置为以管理权限运行。
我知道访问Picture
/Mask
属性会导致 AccessViolation,但是在实际尝试访问该属性之前如何确定该属性是否可读/可写?
我可以检查主机应用程序是否是 SolidWorks,但我宁愿采用更通用的方法,适用于具有相同行为的任何主机。
excel - 选择命令在 VBA 中更改为小写
当我的同事编写一个包含Selection
引用的宏时,由于某种原因,它会将单词更改Selection
为小写s
并停止工作。
例子:
更改为
有人可以告诉我发生了什么吗?我猜是他在某个地方的设置,因为他以前没有写过任何宏。
vba - 我可以得到 VBA 代码中的注释文本吗
可以说我有以下内容:
有没有办法得到“测试”的结果?不知何故通过VBA?
例如 - 在 PHP 中有一个很好的方法来获取评论。这里有什么想法吗?
编辑:应该有办法,因为像 MZ-Tools 这样的工具能够在生成文档时提供注释。
vba - Excel VBA 将数据与列进行比较
我是 excel VBA 代码的新手。如果有人可以帮助我,我需要它来完成任务。
我在 Excel 中有这些数据:
我想要做的是:如果监护人是“母亲”而不是监护人教育的列,它应该显示母亲的教育。如果监护人是“父亲”,则应显示父亲的教育程度,如下图所示。
我需要使用 VBA 代码对大型数据集执行此操作。
ms-access - 如何枚举 Access 中加载的加载项?
如果我打开了一个数据库,并且我在表字段中使用了缩放功能 ( Shift+ F2),则 Access 已经打开了Utility.accda
加载项(正如 VBE 中实用程序的出现所证明的那样)。其他一些动作也会打开ACWZTOOL.ACCDE
。所以,我的 VBE 展示了 3 个项目......
如何枚举每个加载项/数据库的路径?
我正在尝试对MSysObjects
每个数据库中的表执行一些 SQL,但我认为如果不打开与每个加载项路径的连接,我无法使用 Access 对象模型执行此操作。
vba - VBE 中的 CommandBarEvents.Click 和 CommandBarButton.Click 有什么区别?
VBA和VB6加载项对象模型 (VBIDE) 公开了一个CommandBarEvents
具有Click
事件的对象,事件签名为:
并且对 a 的引用CommandBarControl
被传递给它VBE.Events.CommandBarEvents
以注册事件处理程序CommaneBarControl
:
Office对象模型定义了具有自己Click
事件的各个 CommandBar 控件,例如CommandBarControl
具有事件的对象,Click
其签名为:
并将对 a 的引用CommandBarButton
分配给WithEvents
对象:
为什么会有区别,我应该更喜欢哪个?
我将事件附加到 VBE 的 CommandBars 上的控件(而不是主机应用程序中的 CommandBars)。
Office CommandBars 无权访问CommandBarEvents
对象,因此我假设它们必须使用该CommandBarButton.Click
事件。但是 VBE(在任何 Office 主机下)可以访问CommandBarButton
事件和CommandBarEvents
事件,所以我可以使用任何一种方法,尽管CommandBarEvents
对象的存在表明它是首选方法(并且可能是非 Office VBA 主机中的唯一方法) ,并且大多数将事件处理程序添加到 VBE CommandBars的在线示例都使用CommandBarEvents
.
MZ Tools 的 Carlos Quintero 提供了非常有用的信息,但在这种情况下,他的网站上的信息略有矛盾。他建议在旧的 Microsoft Visual Basic 5.0 / 6.0 环境中使用 CommandBarEvents 方法,但也使用CommandBarControl.Click
此页面上的方法
CommandBar
VBE 和将事件附加到控件有什么特别之处吗?CommandBarControl
如果我选择使用事件而不是事件,是否存在任何问题(内存泄漏、IDTExtensibility2 关闭问题等)CommandBarEvents
?
vba - 在 Excel 中组合宏
我正在尝试在 Excel VBE 中组合/嵌套 3 个不同的函数:打开、循环和单击。我把它们分开写了,但不确定如何组合它们。我尝试了“调用宏”功能,但收到了一个编译错误返回给我。
目标是打开某个文件夹中的一堆文件并单击所有文件中的 URL(URL 并不总是相同,因此我需要一个针对工作表中任何未知 URL 的单击函数)。
打开宏:
循环宏:
vba - 自动将“选项私有模块”添加到 VBA 中的所有模块
有没有办法自动添加Option Private Module
到 VBA 中的所有模块?
Option explicit
当我们在 Extras>Option>editor 中标记复选框以声明变量时自动添加类似的东西?
因为遍历所有模块并以某种方式手动编写它似乎是唯一的选择。
子问题:
如果你必须Option Private Module
在 10 个应用程序中添加所有模块,你会怎么做?
起初我想使用一个简单的 Replace 并替换Option Explicit
with Option Explicit ^p Option Private Module
,但它也会在类中替换它,我必须从那里删除它。
在这里节省大约 30 分钟的想法?
vba - 使用其他工作簿宏:工具 - VBA 中的引用
我正在使用另一个工作簿作为常用例程库(工具 - 参考 - 等)。它工作得很好。
但是,当调用方文件将其作为参考加载时,它也会在后台打开库文件。两个问题:
- 是否可以使加载的库只读?
- 是否可以隐藏对用户隐藏的加载库?