问题标签 [vba]

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 投票
9 回答
155124 浏览

excel - 刷新 Excel VBA 函数结果

如何让用户定义的函数根据电子表格中更改的数据重新评估自己?

我试过F9Shift+F9

唯一可行的方法是使用函数调用编辑单元格,然后按 Enter。

0 投票
8 回答
388442 浏览

xml - 如何使用 vba 解析 XML

我在 VBA 中工作,并想解析一个字符串,例如

并将 X 和 Y 值放入两个单独的整数变量中。

我是 XML 的新手,因为我在 VB6 和 VBA 中工作,因为我工作的领域。

我该怎么做呢?

0 投票
2 回答
6586 浏览

vba - 文字自动化:无需通过剪贴板即可编写 RTF 文本

我试图用存储在变量中的一些RTF 字符串替换 Word (2003/2007) 中的当前选择。

这是当前代码:

有没有办法在不通过剪贴板的情况下做同样的事情。或者有什么方法可以将剪贴板数据推送到安全的地方并在之后恢复?

0 投票
8 回答
40851 浏览

excel - 在 Excel 中交替着色行组

我有一个这样的 Excel 电子表格

现在我想通过交替行的背景颜色来对一个 id 的数据进行分组

任何人都可以帮助我使用宏或一些 VBA 代码

谢谢

0 投票
5 回答
15765 浏览

excel - 打包和分发 Excel 应用程序的最佳方式是什么

我编写了一个基于 Excel 的数据库报告工具。目前,所有 VBA 代码都与单个 XLS 文件相关联。用户通过单击工具栏上的按钮生成报告。不幸的是,除非用户以另一个文件名保存文件,否则所有报告的数据都会被清除。

当我在 Word 中创建了类似的工具时,我可以将所有代码放在一个模板 (.dot) 文件中并从那里调用它。如果我将模板文件放在 Office 启动文件夹中,它会在我每次启动 Word 时启动。有没有类似的方法在 Excel 中打包和分发我的代码?我尝试过使用加载项,但没有找到从应用程序窗口调用代码的方法。

0 投票
5 回答
2462 浏览

excel - Excel:列出间接公式所针对的范围

我们有一些非常大的 Excel 工作簿(数十个选项卡,每个超过 1 MB,非常复杂的计算),其中有许多甚至数百个使用可怕的 INDIRECT 函数的公式。这些公式分布在整个工作簿中,并针对几个数据表来查找值。

现在,我需要将这些公式所针对的数据范围移动到同一工作簿中的不同位置。

(原因不是特别相关,但本身就很有趣。我们需要在 Excel Calculation Services 中运行这些东西,并且一次加载每个相当大的表的延迟时间被证明是不可接受的高。我们正在移动表在一个连续的范围内,所以我们可以一次性加载它们。)

有没有办法找到当前引用我们要移动的表的所有 INDIRECT 公式?

我不需要在线执行此操作。只要它可靠,我会很乐意接受需要 4 个小时才能运行的东西。

请注意,.Precedent、.Dependent 等方法仅跟踪直接公式。

(此外,以我们无法选择的方式重写电子表格) 。

谢谢!

0 投票
1 回答
6159 浏览

vba - MS Outlook 2007 中 Visual Basic 宏的目录选择器

我为 Outlook 2007 的附件归档编写了一个 Visual Basic 宏,但没有找到一种完全令人满意的方法来显示 Outlook 宏中的目录选择器。现在,我对 Windows API 或 VB(A) 编程都不太了解,但我在 Microsoft 应用程序中最常看到的“标准”Windows 文件对话框似乎是一个显而易见的选择,但它似乎并不容易获得来自 Outlook 的宏。

理想情况下,目录选择器至少应该允许手动粘贴文件路径/URI 作为导航的起点,因为有时我已经为同一目录打开了一个资源管理器窗口。

Outlook 宏中目录选择器的最佳选择是什么?

我已经尝试过但没有完全令人满意的两件事是(代码被简化并且没有错误处理,并且可能也可以在旧版 Outlook 中运行):

1)使用Shell.Applicationwhich 不允许我通过剪贴板实际粘贴起点或执行其他操作,例如重命名文件夹:

2)使用Office.FileDialogfrom Microsoft Word 12.0 Object Library(通过工具/参考),然后使用Word的文件对话框,它以某种方式在我的Vista系统上永远出现并且并不总是真正将Word带到前台。相反,有时 Outlook 被阻止,文件对话框在后台某处徘徊:

还有其他想法吗?

0 投票
2 回答
4392 浏览

sharepoint - 使用 VBA 或 VSTO 从存储在 SharePoint 中的 Word 文档中读取/写入人员元数据?

场景:SharePoint 中的文档库,列 x 为“个人或组”类型。从 VBA 宏(或 VSTO 加载项)中,我们尝试访问文档上的 MetaProperty 以设置/获取用户名。任何通过 ContentTypeProperties 集合访问该值的尝试都会引发

类型不匹配错误 (13)。

MetaProperty 对象的 Type 属性说它是msoMetaPropertyTypeUser. 我找不到任何关于如何使用这种类型的 MetaProperties 的示例。有人对此有经验吗?

谢谢!

0 投票
12 回答
19738 浏览

database - 测试 MS Access 应用程序的最佳方法?

使用同一数据库中的代码、表单和数据,我想知道为 Microsoft Access 应用程序(例如 Access 2007)设计一套测试的最佳实践是什么。

测试表单的主要问题之一是只有少数控件具有hwnd句柄,而其他控件只有一个它们具有焦点,这使得自动化非常不透明,因为您无法在表单上获得要操作的控件列表。

有什么经验可以分享吗?

0 投票
1 回答
1587 浏览

vba - VB中的模板

我有一些 VB 代码(实际上是 VBA),除了它运行的类型之外,它们基本相同。因为我认为 DRY 原则是软件开发的一个很好的指导原则,所以我想为所有需要操作的不同类型编写一个例程。例如,如果我有两个这样的代码片段:

我想要这样的东西来处理这两种情况:

如果我使用 C++,我会生成一个模板,不再赘述。但我正在使用 VBA。我相当确定在 VBA 语言定义中没有像 C++ 模板这样的功能,但是还有其他方法可以达到相同的效果吗?我猜答案是否定的,但我在这里问是因为我可能错过了 VBA 的某些功能。