问题标签 [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.
excel - VBE 中的 ReplaceLine 方法仅替换部分行
在回答这个问题时,我认为编写一个 VBE 宏会自动替换看起来像的行会很有趣
经过
在我的初稿中,我只想修改一个选定的行。在建立适当的引用以获取 VBE 对象模型(请参阅http://www.cpearson.com/excel/vbe.aspx)并玩了一下之后,我想出了:
在另一个代码模块中,我有:
这是奇怪的部分。当我突出显示以 DimAll a 开头的行并调用我笨拙的子 DimAll 时,在即时窗口中我看到
正如预期的那样,但在代码模块本身中,该行更改为
DimAll 已被 Dim 取代——但该行的其余部分未修改。我怀疑逗号混淆了 ReplaceLine 方法。关于如何解决这个问题的任何想法?
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.
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.Application
VBA IntelliSense 的成员。但不知何故,它碰巧起作用了。
问题是,如何使用 Reflection 进行这项工作?
c# - 如何获取 *实际* 主机应用程序实例?
我在 VBE 的 C# 插件中有此代码(强调“VBE”:它不是MS-Office 插件):
TApplication
MS-Office 互操作类在哪里Application
,例如Microsoft.Office.Interop.Excel.Application
类型;这里的applicationName
参数将是 Excel 的“Excel”。
问题是它Marshal.GetActiveObject
似乎只返回创建的第一个实例,而这不一定是托管当前 VBE 环境的实例,这会导致问题。
如何获得实际的主机应用程序实例?
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 的反射参考文件)缺少的属性/方法。
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 结尾。
所以现在我真的很难知道如何让它工作。
如果有人对此有任何帮助 - 将不胜感激。
谢谢
vba - 对象“_Application”的方法“VBE”失败
我的一位客户在运行下面的 Excel VBA 代码时遇到问题。他收到以下错误Method 'VBE' of object '_Application' failed
,但只有一次,在他打开 VBE 后,它开始工作。而且,直到昨天,它还在为他工作。
他正在使用 Excel 2010。
这是引发错误的代码。
vba - 是否有用于打开和关闭循环以及 if 语句的 VBA 语法突出显示?
抱歉,如果之前有人问过这个问题,但我似乎找不到任何相关信息。我正在使用 VBA 来自动化 word 文档,并且我有一大段代码,其中包含大量“if else”语句、“do while”循环和“with”语句都嵌套在一起。
当我使用其他语言和其他 IDE 进行编程时,我通常可以单击开始的“if”或“while”括号并获得突出显示的结束括号。这使得跟踪所有内容变得更加容易。VBA for Word 中是否有接近此功能的功能?我要疯了,试图跟踪一切!