解决方案 | 一个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兼容性设置成了管理员。

 

最终解决办法只需要把这个对钩去掉就行,也就是不需要使用管理员权限:

 

 

好了,根据上述修改,代码已经顺利运行!!!

 

posted @   IssacNew  阅读(1086)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示