直接用VBA调用EXE是可以的,但要把Excel的内容写入剪贴板,之后找到EXE的句柄,把内容放进去, *** 作窗口进行计算,把结果又反向 *** 作写回来——这个难度就太大了。
我能想到的两种办法:
1:下载一个“按键精灵”,什么粘贴复制,启动关闭EXE,按计算键等,它都能自动完成。是办公自动化的利器!
2:把你需要的功能写一遍,封装成DLL,然后用VBA调用它就可以了。DLL其实和EXE的功能是完全一样的,只是它支持被VBA调用。你可以参看我的一篇介绍,文章介绍了用VBS(和VBA差不多)调用DLL的方法。
http://wenku.baidu.com/view/b122c20303d8ce2f006623a9.html?st=1
如上,祝好!
调用外部程序使用Shell语句,下面的实例是调用CMD命令打开DOS窗口并执行Dir命令,将浏览结果存入文件,然后用open语句打开文件,读入vba,实例中使用的是绝对路径,如果是相对路径用“&”表示盘符,您要调用计算器,并获取计算器的计算结果,仅调用外部程序是不行的,我尝试使用API函数钩子,结果是自己重新写一个计算器都没那么费神Sub shellcall()
Shell "cmd /c dir c:\>c:\1aaa.txt"
Open "c:\11ss.txt" For Input As #1
Dim s As String
While Not EOF(1)
Line Input #1, s
Debug.Print s
Wend
Close #1
End Sub
sub fff()Shell "C:\Users\Desktop\Stirling.exe C:\Users\Desktop\MapVersion.inf" , vbNormalFocus
end sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)