首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从Excel/VBA调用长时间运行的外部程序?

要从Excel/VBA调用长时间运行的外部程序,可以使用以下方法:

  1. 使用Shell函数:Shell函数可以在VBA中运行外部程序。例如,可以使用以下代码运行Notepad.exe:Shell "notepad.exe"Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & _ strComputer & "/root/cimv2") Set objStartup = objWMIService.Get("Win32_ProcessStartup") Set objConfig = objStartup.SpawnInstance_ objConfig.ShowWindow = 1 Set objProcess = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & _ strComputer & "/root/cimv2:Win32_Process") intReturn = objProcess.Create("notepad.exe", null, objConfig, intProcessID)AppActivate "Notepad"这些方法可以帮助您从Excel/VBA调用长时间运行的外部程序。请注意,如果您需要与外部程序进行交互,例如发送数据或接收结果,则需要使用其他方法,例如DDE、OLE Automation或自定义COM组件。
  2. 使用WMI:Windows Management Instrumentation (WMI) 是一种用于管理Windows系统的工具,可以用来启动和管理外部程序。例如,可以使用以下代码运行Notepad.exe:
  3. 使用VBA的AppActivate函数:AppActivate函数可以激活已经运行的外部程序。例如,可以使用以下代码激活Notepad:
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel VBA解读(140): 调用单元格中获取先前计算

学习Excel技术,关注微信公众号: excelperfect 如果有一个依赖于一些计算慢资源用户定义函数,可能希望该用户定义函数在大多数情况下只返回其占用单元格中最后一次计算得到值,并且只偶尔使用计算慢资源...可以设置开关(这里使用称为“RefreshSlow”已定义名称)并在VBA过程中刷新用户定义函数,如下所示: Sub RefreshUDFs() Dim lCalcMode As Long...下面是名为PREVIOUSXLL+函数代码,该函数具有使其成为易失性或非易失性参数。(命令等效函数默认为易失性,但在使用它将前一个值传递给VBA用户定义函数时,通常希望它是非易失性)。...Previous Else var = GetSlowResource(vParam) UDF4 = var End If End Function 在公式中调用此函数如下...小结 有几种方法可以VBA用户定义函数最后一次计算中获取先前值,但最好解决方案需要使用C++ XLL。

6.7K20

一个模块中多个宏如何按顺序自动运行(Excel VBA)

将一个略微复杂工作内容编入VBA,我们可能需要许多宏拼在一起运行才能实现。那么如何按照自己想要顺序依次运行这些宏,实现我们需要结果? 一个办法是编写一个新宏,分别按顺序call你需要运行宏。...call方法有几种,比较简单是以下两种, call 宏1 call 宏2 或者省略call,直接 宏1 宏2 这样,你需要调用宏就会按照顺序执行。...但是,当你调用宏非常多时候,可能有几十个,以上还是有点麻烦。...hong15 最后写个循环汇总以上所有宏 Sub huizong() Dim q For q = 1 To 15 Application.Run "hong" & q Next q End Sub 运行最后这个汇总宏...,你前15个宏就会依次按顺序运行

6.6K30

Jupyter Notebooks嵌入Excel并使用Python替代VBA

在本文中,我将向你展示如何设置在Excel运行Jupyter Notebook。在这两者之间共享数据,甚至可以Excel工作簿调用Jupyter笔记本中编写Python函数!...如何使用 现在,你已经在Excel运行了完整Jupyter笔记本!但是,这有什么好处呢?这比在Excel外部运行笔记本更好?...在本文其余部分,我将向你展示如何: 使用Jupyter笔记本在Excel和Python之间共享数据 在笔记本上写Excel工作表函数(udf) 脚本Excel与Python代替VBA Excel获取数据到...Excel调用Python函数 你可以直接Excel工作簿中调用Python函数,而不是在Excel和Jupyter之间不断移动数据然后运行一些Python代码 PyXLL主要用例之一是用Python...由于PyXLL在Excel进程内运行Python,因此Python调用Excel不会对性能造成任何影响。也可以外部Python进程调用Excel,但这通常要慢得多。

6.3K20

再见 VBA!神器工具统一 Excel 和 Python

Excel调用Python函数 使用Excel离不开函数,而当我们需要一些复杂功能时,自带函数未必能满足我们需求。...,但是可以协调在Excel如何调用或排序这些函数。...由于PyXLL在Excel进程内运行Python ,因此Python调用Excel不会对性能造成任何影响。当然,也可以外部Python进程调用Excel,但这通常要慢很多。...弄清楚如何使用Excel对象模型进行操作一种好方法是记录VBA宏,然后将该宏转换为Python。 下图中尝试将当前选择单元格更改颜色。 ?...Excel和Python共享数据 在Excel中使用Python绘图 Excel调用Python函数 替代VBA脚本 不得不说这个工具是真的香,喜爱Python同学可以不用学习VBA了,Python

5.1K10

VBA教程先导介绍

Visual Basic for Applications(VBA)是一种事件驱动编程语言,广泛应用于Microsoft Office应用程序(如Excel、Word和Access)中。...Excel对象模型在VBA中,Excel对象模型是最核心部分。它定义了Excel各种对象及其属性、方法和事件。常见对象包括:Application:代表Excel应用程序本身。...Workbook:代表Excel工作簿。Worksheet:代表Excel工作表。Range:代表单元格区域。了解如何使用这些对象及其成员是编写VBA代码基础。...调试技术调试是确保代码正确运行重要步骤。VBA提供了多种调试工具,如:断点:在代码中特定行设置断点,暂停代码执行。即时窗口:在代码运行时查看和修改变量值。监视窗口:监视变量和表达式值。...文件操作VBA可以用于操作文件系统,如创建、读取和写入文本文件。这使得处理外部数据和生成报告变得更加灵活。API调用高级用户可以通过VBA调用Windows API,以实现更复杂功能和操作。

12610

答案:Excel VBA编程问答33题,继续……

运行时,如何使隐藏控件可见? 调用具有fmTop参数隐藏控件ZOrder方法。 7.如何防止用户通过制表键将焦点移到控件上? 将控件TabStop属性设置为False。...必须使用“项目工程属性”对话框中“保护”选项卡,将VBA工程与设置给工作簿任何密码分开锁定。 17.是非题:一个bug阻止程序运行。 错误。bug会阻止程序正常运行,但不会阻止程序运行。...22.是非题:监视窗口中值在程序运行时会不断更新。 错误。监视值仅在程序进入中断模式时才更新。 23.VBA如何将bugs报告给程序员? 不会。除了测试程序外,没有其他方法可以找到bugs。...24.是非题:最终用户必须具有已安装Excel版本才能运行Excel应用程序。 不一定。没有Excel程序,但安装了Excel查看器,也可以运行Excel应用程序。...31.类方法与常规VBA过程有何不同? 除了在类模块中之外,没有什么不同。 32.什么是辅助方法? 仅应从类内部而不是类外部代码调用方法。 33.在销毁对象之前触发了什么事件?

4.2K20

《Python for Excel》读书笔记连载2:为什么为Excel选择Python?(续)

服务器允许你代码按计划执行,并使你应用程序可以想要任何地方访问,并具有你需要计算能力。事实上,在下一章中,我将通过介绍托管Jupyter笔记本,向你介绍如何在服务器上运行Python代码。...而且,由于Python程序在所有主要操作系统上运行时都不需要修改,因此当本地机器过渡到生产设置时,这将减轻很多转换麻烦。...相比之下,即使Excel VBA在Windows和macOS上运行,也很容易引入仅在Windows上运行功能。...小结 在本章中,我们初步了解了Python和Excel,这两种非常流行技术已经存在了几十年,与我们今天使用许多其他技术相比,这两种技术已经存在了很长时间。...通过学习如何Excel与Python相结合,你可以在这两个方面都获得优势,并通过自动化节省时间,且因为遵循编程最佳实践更容易而犯更少错误,此外,如果需要,将能够在Excel之外扩展应用程序

2.5K10

『WPS二次开发最新成果』使用外部程序VSTO插件执行JSA宏

在WPS个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPSCOM开放接口。...但是WPSCOM接口,表面是和Excel通用,但也有许多bug存在。暂时没有测试到是否存在JSA宏正常而VBA宏不正常情况。...如果使用外部程序或VSTO插件可以调用这些接口,是比较完美的。例如使用RPA工具,可以全自动化地对其进行单元格图片插入,最后形成报告结果。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...【支持R脚本】FreeScript给数据分析工作者带来无限惊喜,在Excel/WPS环境上做专业数据分析不是梦 有了这个口子后,接下来,就是想办法把自己要实现jsa宏放到一个xlsm文件里,然后使用外部程序打开这个

12110

VBA还能活多久?——完美Excel第169周小结

Excel 5中推出第一个版本起,VBA存在将近30年。无论你是否学习过编程,这都是一种非常容易学习编程语言,并且能够快速应用到具体工作场景中。 为什么学VBA?...学会如何使用VBA,不仅可以更充分发挥Excel能力,让你从不同角度理解和使用Excel,而且会使你具备普通Excel用户没有的更多技能。...特别指出是,很多VBA开发者并不是专业程序员,他们只是自学如何编写和实现自动化VBA程序,从而让自已工作更轻松。...我想,也许是VBA运行已经很平稳,不会给Excel带有问题,而且使用VBA开发Excel应用也没有遇到问题。...使用JavaScript,可以编写在任何设备上运行脚本程序。此外,JavaScript外部源提取数据速度很快。 OK!这个话题到此为止。上面的内容大多来自网上一些专家看法,也有我一些拙见。

4.5K40

『JSA神助攻之二』使用外部程序VSTO插件执行JSA宏

此乃旧文,题目改一下,有点系统性,JSA助攻第一波:可以通过Application.Run接口,让外部程序或VSTO/ExcelDNA项目可以调用JSA宏代码。...以下是历史内容: 在WPS个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPSCOM开放接口。...但是WPSCOM接口,表面是和Excel通用,但也有许多bug存在。暂时没有测试到是否存在JSA宏正常而VBA宏不正常情况。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...【支持R脚本】FreeScript给数据分析工作者带来无限惊喜,在Excel/WPS环境上做专业数据分析不是梦 有了这个口子后,接下来,就是想办法把自己要实现jsa宏放到一个xlsm文件里,然后使用外部程序打开这个

9610

VBA到Python,Excel工作效率如何提高?

现在有了: xlwings库允许我们通过VBA调用Python脚本来进行两者交互! ? 2 为什么要将Python与Excel VBA集成? 事实上,你可以在VBA中做任何事情。...4 启用xlwings用户定义函数 首先我们需要加载 Excel 外接程序: ? 最后,我们需要启用对 VBA 项目对象模型信任访问。你可以通过导航到文件选项信任中心设置宏来做到这一点: ?...5 具体操作 有两种主要方法可以使我们 Excel 转换到 Python(以及转换回来)。第一种是直接 VBA 调用 Python 脚本,另一种是通过用户定义函数调用。...3、在Python脚本中,调用函数main()。 让我们看几个例子,看看如何使用它。 例1:在Excel外部操作,并返回输出。...在本例中,我们将看到如何Excel之外执行操作,然后在电子表格中返回结果。 我们将从CSV文件中获取数据,对这些数据进行修改,然后将输出传递到Excel: 首先,VBA代码。

11.3K20

『JSA宏神助攻之二』使用外部程序VSTO插件执行JSA宏

此乃旧文,题目改一下,有点系统性,JSA助攻第一波:可以通过Application.Run接口,让外部程序或VSTO/ExcelDNA项目可以调用JSA宏代码。...以下是历史内容: 在WPS个人版上,默认只有JSA宏,没有VBA宏,虽说在VSTO/ExcelDNA项目里或者外部程序如C#/python等可以使用COM通信来调用WPSCOM开放接口。...但是WPSCOM接口,表面是和Excel通用,但也有许多bug存在。暂时没有测试到是否存在JSA宏正常而VBA宏不正常情况。...如何调用,答案和FreeScript类似,仍然使用了Application.Run方法,在外部程序或VSTO插件里,调用这个方法,同样可以运行JSA宏。...【支持R脚本】FreeScript给数据分析工作者带来无限惊喜,在Excel/WPS环境上做专业数据分析不是梦 有了这个口子后,接下来,就是想办法把自己要实现jsa宏放到一个xlsm文件里,然后使用外部程序打开这个

6810

《Python for Excel》读书笔记连载1:为什么为Excel选择Python?

历史 Excel和Python已经存在很长时间了。 Excel于1985年由Microsoft首次推出,但只适用于AppleMacintosh。...图1-1 对于这个简单货币转换器来说,这不一定是一个问题,但通常情况下,一开始只是一个小Excel文件,很快就会变成一个更大应用程序如何改善这种情况?...没有重复代码意味着更少代码行和更少错误,这使得代码更易于维护。 如果编写VBA,最常见可重用代码是函数。例如,通过函数可以多个宏访问同一代码块。...顾名思义,它是一种测试程序各个组件机制。例如,单元测试确保程序单个功能正常工作。大多数编程语言都提供了一种自动运行单元测试方法。...然而,Excel社区使用现代Excel来引用与Excel2010一起添加工具:最重要是PowerQuery和PowerPivot,它们允许你连接到外部数据源并分析太大而无法放入电子表格数据。

5.2K20

VBA与数据库——Excel

这就像平时写VBA代码处理Excel表格,一般都是让VBA程序去适应数据规则,所以处理数据VBA程序总要改变,这是因为我们是让VBA程序去适应数据规则。...从这里就可以看出,把Excel当作数据库处理,调用ADODB去读取数据时候,其实就是让一个程序去操作Excel文件,这个程序可以解析Excel文件结构,直接文件中去读取数据。...而Excel本身就是一个很好交互界面,再配合上VBA调用ADODB外部对象来处理数据库,使用起来是非常不错。...但是,如果数据很规范情况下,处理Excel数据时候,相比我们自己用VBA调用Excel对象模型,结合数组、字典等方式来处理,专业数据库处理程序会更强大,因为毕竟这些程序都是专业程序员编写,里面使用了很多好数据结构等...所以,不管用不用专业数据库管理数据,把Excel数据做很规范,使用VBA调用ADODB处理方式仍然是高效

2.5K10

Python替代Excel Vba系列(终):vba调用Python

系列文章 "替代Excel Vba"系列(一):用Pythonpandas快速汇总 "Python替代Excel Vba"系列(二):pandas分组统计与操作Excel "Python替代...本系列一直强调要善用各种工具,作为本系列最后一节,那么这次就用一例子说明如何让Python结合Vba,直接在Excel中动态获取各种处理条件,输出结果。...本文要点: 使用 xlwings 注册 Python 方法到 Vba 模块 Vba 调用 Python 方法,输出结果到 Excel 注意:虽然本文是"Python替代Excel Vba"系列,但希望各位读者明白...外部传入是字符串,比如参数 groups 可以是 "col1,col2",因此需要对 groups 和 values 参数调用 split 分裂成列表。...---- ---- 到此为止,即可编写 vba 代码去调用。如下: 注意红线部分,返回结果 numpy 数组索引是0开始计数。因此这里需要在最大索引+1才是行和列数目。

5.1K30

解密古老而又神秘宏病毒

某段数据上标记了字母'M',表示这段数据中含有VBA宏(Macro): 宏病毒激发机制有三种:利用自动运行宏,修改Word命令和利用Document对象事件。...屏蔽格式菜单"对象" 宏病毒调用外部例程表: 外部例程 介绍 MSXML2.ServerXMLHTTP Xmlhttp是一种浏览器对象, 可用于模拟httpGET和POST请求 Net.WebClient...配合XMLHTTP服务使用Stream对象可以网站上下载各种可执行程序 Wscript.shell WScript.Shell是WshShell对象ProgID,创建WshShell对象可以运行程序...Poweshell PowerShell.exe 是微软提供一种命令行shell程序和脚本环境 Application.Run 调用该函数,可以运行.exe文件 WMI 用户可以利用 WMI 管理计算机...右键单击屏幕底部"Sheet1",然后单击"插入"。 弹出一个窗口,允许您要插入各种对象中进行选择。选择"MS Excel 4.0宏表"并单击"确定"。 已创建一个名为"宏1"新工作表。

5.5K30

暂停或延迟Excel VBA运行3种方法

标签:VBA 在执行下一段代码之前,如果需要暂停Excel VBA代码运行,该如何做呢?本文探索在Excel VBA中添加暂停最佳方法。...虽然Excel VBA没有用于暂停代码运行内置功能,但可以使用Application.Wait或Windows APISleep函数等方法来引入延迟。...2.延迟代码运行使得能够与外部事件(如数据库更新或web服务响应)进行协调,从而确保无缝集成和实时数据处理。 3.VBA暂停使得有时间在继续操作之前查看信息或做出决定。...End Sub 现在,Excel将立即执行复制任务,并等待10秒钟,然后再执行乘法任务并将结果放在E列下。在这10秒钟暂停期间,将无法访问Excel应用程序。...如果VBA代码延迟时不需要与Excel交互,则可以使用基于Application.Wait和Sleep函数方法。这些方法主要帮助在运行大型VBA脚本时高效地分配PC资源。

2.6K30

Office VBA入门及高级教程

VBA介绍 Office Visual Basic for Applications (VBA) 是一种事件驱动编程语言,可用于扩展 Office 应用程序。 ?...Office VBA是一门标准宏语言。VBA语言不能单独运行,只能被office软件(如:Word、Excel等)所调用。...此参考适用于希望了解 VBA 并希望深入了解编程如何帮助他们自定义 Office 有经验 Office 用户。 Office 应用程序套件具有全套功能。...除了编写 VBA 脚本以加速日常任务强大功能之外,您还可以使用 VBA 向 Office 应用程序添加新功能,或者以特定于您业务需求方式提示您文档用户并与之交互。...下面分享给大家国外非常火Excel教程,入门到成为VBA专家: ExcelVBA入门教程-B站观看 ExcelVBA高级教程-B站观看 ExcelVBA专家级教程

2.6K30

Python中运行Excel VBA

有时候,我们可能想要从Python运行Excel VBA宏,特别是当想要运行已有的Excel宏时,这很有用——甚至可以在不打开Excel文件情况下执行这些VBA宏。...VBA宏 下面是一个非常简单Excel VBA宏,它接受一个参数,在工作表Sheet1单元格B2中输入一条问候语。...End Sub Python中运行VBA宏 现在,将编写Python代码,导入win32com.client开始,并实例化一个“xl”对象来表示Microsoft Excel应用程序。...模块1.mymacro("完美Excel")') wb.Save() xl.Application.Quit() 为了调用VBA宏,使用了xl.Application.Run()方法,其中参数指示要运行宏...最后,不要忘了调用xl.Application.Quit()关闭Excel应用程序。让Excel应用程序在后台打开可能会在以后导致程序出现问题。

5.3K20

问与答115:如何使用VBAExcel中复制图片并将其粘贴到PowerPoint指定幻灯片?

Q:我在Excel工作表中包含有1张图片,名称是默认“图片 1”,我怎样编写VBA代码来打开一个已存在PPT文件,先删除该PPT中所有的图片,然后将“图片 1”复制并粘贴到该PPT第2张幻灯片中...A:首先,添加对“MicrosoftPowerPoint XX.0 Object Library”库引用,如下图1所示。 ?....Width = 300 End With Set oSlide = Nothing Set oPresentation = Nothing End Sub 小结: Excel...与其他Office应用程序(例如Word、PowerPoint)相交互是常见应用,因为他们都属于Office家族,因此很方便整合。...注:今天这个问题来源于mrexcel.com论坛,略有修改,供有兴趣朋友学习参考。

4.2K40
领券