解决方案 | 一个VBA代码里面非常隐蔽的错误:运行时错误“5”:无效的过程调用或参数
1 代码部分
代码功能:实现使用sumatra打开指定pdf指定页码
代码:
Sub OpenPDFatPage() Dim PDFFile As String Dim PageNumber As Long Dim SumatraPath As String 'PDF文件路径 PDFFile = "C:\Users\Administrator\Desktop\22.pdf" '要打开的页码(从1开始) PageNumber = 2 'SumatraPDF程序路径 SumatraPath = "C:\Program Files\SumatraPDF\SumatraPDF.exe" '调用SumatraPDF打开PDF文件并跳转到指定页码 Call Shell("""" & SumatraPath & """ -page " & PageNumber & " """ & PDFFile & """", vbNormalFocus) End Sub
2 报错内容
3 解决方法
由于我在vba中调试始终不成功,后来换了一个思路,我先用python代码进行编程,后来得到的错误提示是如下:
hp, ht, pid, tid = _winapi.CreateProcess(executable, args, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OSError: [WinError 740] 请求的操作需要提升。
于是我就明白了。原来是我之前把sumatrapdf.exe兼容性设置成了管理员。
最终解决办法只需要把这个对钩去掉就行,也就是不需要使用管理员权限:
好了,根据上述修改,代码已经顺利运行!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)