- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我熟悉 OLE 自动化并从给定的 VBA IDE/VBE(尤其是 Excel 的 VBE)控制其他应用程序。虽然我知道可以使用 SendKeys 方法来从根本上完成我想要做的事情,但我觉得在某些情况下它可能不可靠(更不用说有点草率了)。
简而言之,我试图从 Excel 中将 VBA 模块写入文本文件(已经解决了这个问题),然后让目标应用程序的 VBA IDE 导入该模块并执行代码。
我对此的主要原因是,对于所述目标应用程序,Excel 可用的引用库有局限性(而正如人们所期望的那样,目标应用程序的 VBA IDE 有更多的属性和方法可以作为其引用库使用特定于应用程序本身,原因很明显)。
关于如何最好地完成这项工作有什么想法吗?
只创建自定义 COM 引用或调整现有的 COM 引用会更好吗(我认为这相当困难,因为我不熟悉 C# 或 Visual Studio)?
(注意:如果您想知道,我正在使用 Reflection Sessions(IBM,适用于 Windows),并且相当广泛地接触了我正在使用的主要 COM (EXTRACOM)。在 Reflection Sessions VBE 中有一些方法例如 .GetFieldText
(无论应用程序光标放在给定字段上的什么位置,它将返回整个字段名称。这比 EXTRACOM 的 .GetString
更有用需要程序员首先指定字段长度和光标位置。另一个属性方法:.GetFieldColor
(它将返回字段颜色的数字代码,EXTRACOM(Excel 的反射引用文件)的属性/方法) 缺乏。
最佳答案
我不清楚 OP 在这里实际想做什么。
似乎反射类型库在从反射外部调用时不可靠,因此解决方案似乎涉及使用 Application.Run
或自动化 VBE .
有两种方法可以实现:
在 Excel 实例中使用反射调用 VBA 函数(我在此处显示的示例),但如果您可以获得对反射 VBE 的引用,则可以反转它并从 Excel 调用反射 VBA。
让 Reflection 从 Excel 的 vbProject(s) 导出模块,然后将它们导入 Refelction vbProject(s)。
幸运的是,VBA 使这两种方法成为可能。对于这两种方法,您都需要添加对 Excel
和 Visual Basic for Applications Extensibility
使用 Application.Run
调用另一个 VBA 主机中的函数
使用 Application.Run
,我们可以在 Excel 项目中调用函数(我们甚至可以在调试时从一个 VBE 步进到另一个。我们可以传递参数,并且我们可以接收返回值。
Sub CallExcelUDFFromNonExcelHost()
'Get an existing instance of Excel
Dim appXL As Excel.Application
Set appXL = GetObject(, "Excel.Application")
'Get the already opened Excel workbook
Dim wbk As Excel.Workbook
Set wbk = appXL.Workbooks("MyExcelFunctions.xlsm")
'Call the function in the Excel workbook
Dim result
result = appXL.Run(wbk.VBProject.Name & ".MyFunction", "Some Argument")
End Sub
自动化外部 VBA 主机的 VBE我没有反射,所以这里我的代码在 Access 中运行,并从 Excel 导入模块。
Sub ImportVBAModuleFromOtherIDE()
'Get an existing instance of Excel
Dim appXL As Excel.Application
Set appXL = GetObject(, "Excel.Application")
'Get the already opened Excel workbook
Dim wbk As Excel.Workbook
Set wbk = appXL.Workbooks("MyExcelFunctions.xlsm")
'Export a module from Excel
wbk.VBProject.VBComponents("Module1").Export "C:\Temp\Module1.bas"
'Import the module into the Access project
Application.VBE.VBProjects("Database11").VBComponents.Import "C:\Temp\Module1.bas"
End Sub
关于excel - OLE 自动化并与另一个 VBE/VBA IDE 交互,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33220607/
我正在寻找一个编辑器/IDE,它可以为不是专门为它构建的语言提供在编码时很好的功能(例如:能够点击到函数定义)。通过这些,我想到了为非常特定的目的而设计的语言,并且通常只被一个小社区使用。换句话说,那
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
有简单的解释性编程语言,实际上还有控制台 interpreter.exe。 需要按 F5 对语法进行着色、自动完成和执行。 (如果有可能进行“调试”——那就太棒了!) 我从来没有做过这样的事情。 有许
我只是想知道是否有任何可以在我的黑莓上运行的 IDE。我的旧 Palm 有 C 和 BASIC 翻译。 C 板上使用 Palm 的内置文本编辑器,但 BASIC 解释器内置了自己的简单编辑器。 黑莓或
我正在制作一个文件编辑器,并希望为我的用户提供一个不错的 IDE,可以在其中在浏览器上编辑他们的 html/css 文件。是否有任何编辑器与 TinyMCE 类似,但它不是一个所见即所得的编辑器,它更
是否有一个带有集成调试器的D IDE? 最佳答案 Descent可以使用调试器。不完全是您的要求,但是... 关于ide - 是否有一个带有集成调试器的D IDE?,我们在Stack Overflow
每个程序员都知道工具很重要,对于开发人员来说,没有比用于编码的 IDE 更重要的工具了。在过去的几年里,IDE-s 成为标准,在这个领域看到创新并不常见。您可以推荐哪些 IDE 具有创新性,它们引入了
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
我目前正在学习Ironpython和热爱软件,但我希望从使用notepad ++和cmd.exe继续前进,并尝试使用果汁多一点的东西。 我最近了解到Iron python studio不支持Iron
我主要从事 Java 和 C/C++ 开发,但我开始做更多的 Web 开发(PHP、Rails)和 Eiffel(学习一门新语言总是好的)。 目前,我使用 Eclipse for Java、C/C++
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
是否有 280Atlas (280atlas.com)(免费/商业)的替代品? 其中哪些是成熟的? 最佳答案 您可以使用 nib2cib ,这几乎是相同的想法,但它使用界面构建器(xcode的一部分)
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
IDE 的目标是提高生产力。他们在这方面做得很好。重构、导航、内联文档、自动完成有助于极大地提高生产力。 但是:每个工具都是武器 .相同的 IDE 有助于生成块代码。一些 IDE 功能会导致产生不良代
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 10 年前。 Improve thi
我正在寻找一些功能强大的C / C ++编程环境。实际上,我唯一需要的就是强大的源导航+创建工具。免费或商业都无所谓。我更喜欢一些linux工具,但是它不一定是必需的linux应用。 我需要的是一种具
我刚开始学习 D。有人知 Prop 有自动格式化功能的 D IDE 吗? Eclipse 的 DDT 似乎除了语法高亮之外没有任何其他功能。 最佳答案 我相信,目前 MonoDevelop + Mon
我有兴趣为一个副项目构建一个新风格的 IDE。主要是为了取消类固醇IDE上的普通记事本。我正在为已经尝试过的或者你已经看到(或没有看到)看起来很酷并且在 IDE 中有用的东西寻找一些灵感。我可以解决的
我需要维护一些 VB6 应用程序,并且在涉及枚举名称时遇到了一个奇怪的问题。 VB6 中的 Intellisense 应该工作的方式是,如果我的变量名称被定义为,例如,Dim Abraxis as S
正如标题所说,我看到很多编辑将宏录制作为一项功能吹捧,但自己却找不到利用这些功能的方法。那你能用它做什么呢?您可以记录鼠标移动和/或击键的类型?对外面的人真的那么有帮助吗?具体来说,我处理的 Ecli
我是一名优秀的程序员,十分优秀!