问题标签 [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.

0 投票
0 回答
112 浏览

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,但我宁愿采用更通用的方法,适用于具有相同行为的任何主机。

0 投票
1 回答
801 浏览

excel - 选择命令在 VBA 中更改为小写

当我的同事编写一个包含Selection引用的宏时,由于某种原因,它会将单词更改Selection为小写s并停止工作。

例子:

更改为

有人可以告诉我发生了什么吗?我猜是他在某个地方的设置,因为他以前没有写过任何宏。

0 投票
4 回答
2699 浏览

vba - 我可以得到 VBA 代码中的注释文本吗

可以说我有以下内容:

有没有办法得到“测试”的结果?不知何故通过VBA?

例如 - 在 PHP 中有一个很好的方法来获取评论。这里有什么想法吗?

编辑:应该有办法,因为像 MZ-Tools 这样的工具能够在生成文档时提供注释。

0 投票
2 回答
494 浏览

vba - Excel VBA 将数据与列进行比较

我是 excel VBA 代码的新手。如果有人可以帮助我,我需要它来完成任务。

我在 Excel 中有这些数据:

excel数据

我想要做的是:如果监护人是“母亲”而不是监护人教育的列,它应该显示母亲的教育。如果监护人是“父亲”,则应显示父亲的教育程度,如下图所示。

例子

我需要使用 VBA 代码对大型数据集执行此操作。

0 投票
1 回答
34 浏览

ms-access - 如何枚举 Access 中加载的加载项?

如果我打开了一个数据库,并且我在表字段中使用了缩放功能 ( Shift+ F2),则 Access 已经打开了Utility.accda加载项(正如 VBE 中实用程序的出现所证明的那样)。其他一些动作也会打开ACWZTOOL.ACCDE。所以,我的 VBE 展示了 3 个项目......

如何枚举每个加载项/数据库的路径?

我正在尝试对MSysObjects每个数据库中的表执行一些 SQL,但我认为如果不打开与每个加载项路径的连接,我无法使用 Access 对象模型执行此操作。

0 投票
1 回答
828 浏览

vba - VBE 中的 CommandBarEvents.Click 和 CommandBarButton.Click 有什么区别?

VBAVB6加载项对象模型 (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页面上的方法

CommandBarVBE 和将事件附加到控件有什么特别之处吗?CommandBarControl如果我选择使用事件而不是事件,是否存在任何问题(内存泄漏、IDTExtensibility2 关闭问题等)CommandBarEvents

0 投票
2 回答
519 浏览

vba - 在 Excel 中组合宏

我正在尝试在 Excel VBE 中组合/嵌套 3 个不同的函数:打开、循环和单击。我把它们分开写了,但不确定如何组合它们。我尝试了“调用宏”功能,但收到了一个编译错误返回给我。

目标是打开某个文件夹中的一堆文件并单击所有文件中的 URL(URL 并不总是相同,因此我需要一个针对工作表中任何未知 URL 的单击函数)。

打开宏:

循环宏:

0 投票
1 回答
903 浏览

vba - Rubberduck UI 子菜单被禁用

我刚刚在 Windows 10 操作系统上安装了 Rubberduck VBE 插件 v2.0.11.2453 (MSIL)。

当我在 Excel 中打开启用宏的 Excel 工作簿并启动 VBA 编辑器时,Rubberduck 启动,但 Rubberduck 菜单下的所有命令都被禁用。

我究竟做错了什么?

在此处输入图像描述

0 投票
2 回答
1580 浏览

vba - 自动将“选项私有模块”添加到 VBA 中的所有模块

有没有办法自动添加Option Private Module到 VBA 中的所有模块?

Option explicit当我们在 Extras>Option>editor 中标记复选框以声明变量时自动添加类似的东西?

因为遍历所有模块并以某种方式手动编写它似乎是唯一的选择。

子问题: 如果你必须Option Private Module在 10 个应用程序中添加所有模块,你会怎么做?

起初我想使用一个简单的 Replace 并替换Option Explicitwith Option Explicit ^p Option Private Module,但它也会在类中替换它,我必须从那里删除它。

在这里节省大约 30 分钟的想法?

0 投票
1 回答
518 浏览

vba - 使用其他工作簿宏:工具 - VBA 中的引用

我正在使用另一个工作簿作为常用例程库(工具 - 参考 - 等)。它工作得很好。

但是,当调用方文件将其作为参考加载时,它也会在后台打开库文件。两个问题:

  • 是否可以使加载的库只读?
  • 是否可以隐藏对用户隐藏的加载库?