问题标签 [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 投票
1 回答
1100 浏览

excel - VBE 中的 ReplaceLine 方法仅替换部分行

在回答这个问题时,我认为编写一个 VBE 宏会自动替换看起来像的行会很有趣

经过

在我的初稿中,我只想修改一个选定的行。在建立适当的引用以获取 VBE 对象模型(请参阅http://www.cpearson.com/excel/vbe.aspx)并玩了一下之后,我想出了:

在另一个代码模块中,我有:

这是奇怪的部分。当我突出显示以 DimAll a 开头的行并调用我笨拙的子 DimAll 时,在即时窗口中我看到

正如预期的那样,但在代码模块本身中,该行更改为

DimAll 已被 Dim 取代——但该行的其余部分未修改。我怀疑逗号混淆了 ReplaceLine 方法。关于如何解决这个问题的任何想法?

0 投票
1 回答
107 浏览

vba - Outlook 2013 VBA VBE F8 Sometimes Doesn't Work

When debugging code in the Outlook 2013 VBA Visual Basic Editor, sometimes the function key F8 Step Into is totally ignored. The Debug Toolbar Step Into works just fine. When this occurs it seems to go on for many lines of code, and then sometimes the F8 key will start to work again.

0 投票
3 回答
3469 浏览

c# - 如何在没有 Application.Run 的情况下从 VBE 加载项运行宏?

我正在为 VBE 编写一个 COM 插件,其中一个核心功能涉及在单击命令栏按钮时执行现有的 VBA 代码。

该代码是用户编写的单元测试代码,位于标准 (.bas) 模块中,如下所示:

所以我有这段代码可以获取宿主Application对象的当前实例:

这是ExcelApp课程:

奇迹般有效。我也有类似的WordApp,PowerPointApp和代码AccessApp

问题是 Outlook 的Application对象没有公开Run方法,所以我卡住了。


如何从 VBE 的 COM 加载项执行 VBA 代码,而无需Application.Run?

这个答案链接到MSDN 上看起来很有希望的博客文章,所以我尝试了这个:

但是我得到的最好的结果是一个COMException写着“未知名称”的代码,并且 OUTLOOK.EXE 进程以代码 -1073741819 (0xc0000005) '访问冲突'退出 - 而且它也与 Excel 一样好。


更新

如果我把这个 VBA 代码放在TestMethod1里面ThisOutlookSession

请注意,TestMethod1它没有被列为Outlook.ApplicationVBA IntelliSense 的成员。但不知何故,它碰巧起作用了。

问题是,如何使用 Reflection 进行这项工作?

0 投票
1 回答
180 浏览

c# - 如何获取 *实际* 主机应用程序实例?

我在 VBE 的 C# 插件中有此代码(强调“VBE”:它不是MS-Office 插件):

TApplicationMS-Office 互操作类在哪里Application,例如Microsoft.Office.Interop.Excel.Application类型;这里的applicationName参数将是 Excel 的“Excel”。

问题是它Marshal.GetActiveObject似乎只返回创建的第一个实例,而这不一定是托管当前 VBE 环境的实例,这会导致问题

如何获得实际的主机应用程序实例?

0 投票
1 回答
1270 浏览

excel - OLE 自动化并与另一个 VBE / VBA IDE 交互

我熟悉 OLE 自动化并从给定的 VBA IDE / VBE(尤其是 Excel 的 VBE)控制其他应用程序。虽然我知道可以使用 SendKeys 方法作为一种基本上完成我想要做的事情的方法,但我觉得它在某些情况下可能不可靠(更不用说有点草率了)。

简而言之,我试图从 Excel 中将 VBA 模块写入文本文件(已经弄清楚了),然后让目标应用程序的 VBA IDE 导入模块并执行代码。

我对此的主要原因是 Excel 可用的关于所述目标应用程序的参考库有限制(而正如人们所期望的那样,目标应用程序的 VBA IDE 有更多的属性和方法可以使用,因为它的参考库是特定于应用程序本身,原因很明显)。

关于如何最好地做到这一点的任何想法?

只创建一个自定义 COM 引用或调整现有的 COM 引用会更好吗(我认为这相当困难,因为我不熟悉 C# 或 Visual Studio)?

(注意:如果您想知道,我正在使用反射会话(IBM,用于 Windows),并且对我正在使用的主要 COM(EXTRACOM)有相当广泛的了解。在反射会话 VBE 中有一些方法,例如.GetFieldText(无论应用程序光标放在给定字段上的什么位置,它都会返回整个字段名称。这可能比 EXTRACOM 更有用,EXTRACOM.GetString要求程序员首先指定字段长度和光标位置。另一个属性方法:(.GetFieldColor它将返回字段颜色的数字代码,EXTRACOM(Excel 的反射参考文件)缺少的属性/方法。

0 投票
1 回答
450 浏览

vba - vba module.find 带换行符(Ms access 2013)

我一直在使用一段代码来查找 vba 模块中的特定文本。

它适用于查找单行(或更少)文本。因此,例如,它将在带有文本的模块中找到“mySub”:

我正在使用的代码:

当我想搜索多行文本时,问题就开始了。例如我想找到文本部分:

将 a 调暗为整数 将
b 调为整数

不幸的是,当我尝试显示我的多行搜索文本时,find 函数返回错误。

使用调试(监视/立即)我确认我的搜索条件(text_find)在第一个“整数”和“Dim b”之间确实包含 chrs 13 + 10。

我还检查了“Dim a”行的 module.Line 值,它也以 chrs 13 + 10 结尾。

所以现在我真的很难知道如何让它工作。

如果有人对此有任何帮助 - 将不胜感激。

谢谢

0 投票
2 回答
979 浏览

excel - 窗口太窄 - 每行只允许一个字符

我在 Excel 的 Visual Basic 编辑器中有一个奇怪的问题:它向我显示了一个非常薄的文本字段,每行只有一个字符,并且无法更改尺寸。 Excel VBE 太窄 有没有人遇到过类似的问题,或者有没有办法在文本编辑器中打开宏作为解决方法?

系统:Mac OS 10.11.1,Office 2016 v15.13.1,已经尝试重装。

0 投票
1 回答
254 浏览

vba - 在 MS Visual Basic 中为应用程序创建自定义标题

我正在学习学习模块,VBA 教程的作者做了一些很酷的事情。

他单击“插入代码元素标题”按钮,它会自动粘贴他自己制作的标准标题(他反复使用)。

我一直在谷歌上搜索,但我似乎无法弄清楚他是如何做到的。

我正在使用 Office 2013 和 MS VB for Apps 7.1 版,他的版本似乎更旧,可能是 5.0/6.0 版,他没有说明。他所做的事情很方便,因为他只是删除了他知道他将在大多数项目中使用的东西的注释,无论它们是模块、对象还是类模块。

当我单击“插入标题”按钮时,它只给了我这些选项,我无法添加到:

MSVBAmyHeader

这是他的 VBA 的截图和标题:

MSVBA

任何帮助表示赞赏!

0 投票
2 回答
6760 浏览

vba - 对象“_Application”的方法“VBE”失败

我的一位客户在运行下面的 Excel VBA 代码时遇到问题。他收到以下错误Method 'VBE' of object '_Application' failed,但只有一次,在他打开 VBE 后,它开始工作。而且,直到昨天,它还在为他工作。

他正在使用 Excel 2010。

这是引发错误的代码。

0 投票
2 回答
1069 浏览

vba - 是否有用于打开和关闭循环以及 if 语句的 VBA 语法突出显示?

抱歉,如果之前有人问过这个问题,但我似乎找不到任何相关信息。我正在使用 VBA 来自动化 word 文档,并且我有一大段代码,其中包含大量“if else”语句、“do while”循环和“with”语句都嵌套在一起。

当我使用其他语言和其他 IDE 进行编程时,我通常可以单击开始的“if”或“while”括号并获得突出显示的结束括号。这使得跟踪所有内容变得更加容易。VBA for Word 中是否有接近此功能的功能?我要疯了,试图跟踪一切!