我在excel中使用VBA宏程序时,报错无法执行,为啥!前提,程序没有问题,因为单位机器运行良好

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在excel中使用VBA宏程序时,报错无法执行,为啥!前提,程序没有问题,因为单位机器运行良好相关的知识,希望对你有一定的参考价值。

我使用office2003,随后升级到2007还是无法运行。程序没有问题,单位机器使用office2007,请高手指点

不是你电脑的问题.是这个excel表 在编写VBA时在引用里勾选了其他的引用,而这个引用是你的电脑没有的,所以会出现这个错误
在能运行的电脑上打开VBA编辑器,然后点“工具”、“引用”,把用不着的引用前面的勾去掉,重新保存,再复制到其它电脑上运行试一试
诀窍,如果去掉对钩时没有提示正在使用,就是可以去掉的
这样操作后,仅保留正在使用的,复制的你的电脑上还是报错的话.那就是需要那个引用了.找到对应的引用是那一类的安装一下就好了
参考技术A 有一些库,你可能没有引用进来,请看一下公司机器和你自己机器引用的是否一样,查看引用是在菜单->工具->引用 里

如何在excel中使用VBA调用其它外部程序

使用shell语句,例子:

Sub RAR()
    Shell "C:\\Program Files\\WinRAR\\WinRAR.exe", vbNormalFocus
End Sub
参考技术A shell
外壳程序,你看看可以不
参考技术B Shell 函数
R执行一个执行档程式,如果成功的话,会传回一个 Variant (Double) 来代表这个程式的 task ID,若不成功,则会传回 o。 语法
Shell(pathname[,windowstyle])
Shell 函数的语法含有底下这些指名引数:

单元
描述

pathname 必要引数,Variant (String),要执行的程式名称,以及任何必要的引数或命令列变数,同可时加上目录或档案夹名称,以及磁碟机名称。
Windowstyle 选择性引数,此为 Variant (Integer),表示在程式执行时,视窗的呈现型态,如果windowstyle 省略,则程式是以最小化来执行。

windowstyle 指名引数有以下这些值:

常数

描述

vbHide 0 视窗会被隐藏,且驻点会移到隐藏的视窗。
VbNormalFocus 1 视窗具有驻点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 视窗会以一个图示来显示,并具有驻点。
VbMaximizedFocus 3 视窗会最大化,并具有驻点。
VbNormalNoFocus 4 视窗会被还原到前一次的大小和位置,而目前使用中的视窗仍然维持使用中。
VbMinimizedNoFocus 6 视窗会以一个图示来显示,而目前使用中的视窗仍然维持使用中。

请注意
如果 Shell 函数可以成功地执行所要的执行档,则它会传回启始程式的 task ID , task ID 是一个唯一的数值,用来指名执行中的程式,如果 Shell 函数无法开启指名的程式,则会产生错误

附注 预设情况为 Shell 函数是以非同时方式来执行其它程式,也就是说,用 Shell 所启动的程式,可能还没执行完全,就执行到 Shell 函数之後的陈述式。
参考之后的代码是这样写的,

Sub MacroUpdate()
On Error GoTo ErrorHandler
ID = Shell(ThisWorkbook.Path & "\" & "LiveUpdate.exe", 4)
Exit Sub
ErrorHandler:
MsgBox Err.Description, vbInformation, MacroTitle
End Sub

运行正常,

以上是关于我在excel中使用VBA宏程序时,报错无法执行,为啥!前提,程序没有问题,因为单位机器运行良好的主要内容,如果未能解决你的问题,请参考以下文章

如何加速 Excel VBA 宏

在Excel VBA中双击执行宏

从 C# 运行 Excel 宏:从 VBA 捕获运行时错误

Excel VBA 宏无法在同事的计算机上保存工作簿,但在我的计算机上很好

Excel VBA 宏后期绑定

VBA宏运行速度为啥比Excel自带函数慢