excel VBA引用文件路径默认为错误的文件路径

wkftcu5l  于 2023-06-30  发布在  其他
关注(0)|答案(2)|浏览(173)

我拿起VBA大约一个月前,但我已经得到了相当舒适。现在我正试图导出Excel数据到特定字段的PDF格式,但这不是我的问题...我无法让VBA识别正确的acrobat.tlb文件。
我不知道该怎么做,从我所做的研究来看,我一直找不到解决办法。这是一个我已经有好几天的问题。我已经重新启动了我的电脑,excel,adobe。我不知道该怎么办
任何帮助都很感激。
我在一台安装了Acrobat 2020 Standard和Acrobat Reader的工作计算机上。从我查找的内容中,我发现VBA试图使用Acrobat Reader而不是Acrobat Standard,因为它一直给我“没有这样的界面”错误。我从电脑和回收站中完全删除了Acrobat Reader。但是,每当我选择正确的acrobat.tlb文件时,它都会将文件路径更改为不正确的文件,现在甚至不存在。与Acrobat Reader关联的文件位于Program Files中,与Acrobat Standard关联的文件位于Program Files (x86)中。我可以从“引用”窗口中选择正确的文件,但一旦我重新打开“引用”窗口,它就会更改文件路径。我已经使用宏从References列表中删除了引用,但在我选择了正确的文件后,重新打开引用窗口后,它仍然会恢复到错误的文件路径。
选择文件时的文件路径:C:\Program Files (x86)\Adobe\Acrobat 2020\Acrobat\acrobat.tlbenter image description here
重新打开参考窗口后的文件路径:C:\Program Files\Adobe\Acrobat DC\Acrobat\acrobat.tlbenter image description here
References列表的底部仍然有一个框,允许我选择正确的文件路径,但是选择并没有任何作用。

g52tjvyc

g52tjvyc1#

是否尝试使用GUID和版本而不是文件路径添加引用?另请参阅:使用GUID或FilePath的引用您可以尝试通过浏览注册表或使用以下代码来查找GUID:Find_tlib“acrobat”

Sub Find_tlib(searchkey As String)
    Const HKEY_CLASSES_ROOT = &H80000000
    Dim Result As Long, oReg As Object, Guid As Variant, SubKeys() As Variant, Versions() As Variant, Version As Variant, Values() As Variant, Value As Variant, Types As Variant
    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    oReg.EnumKey HKEY_CLASSES_ROOT, "Typelib\", SubKeys
    For Each Guid In SubKeys
        Result = oReg.EnumKey(HKEY_CLASSES_ROOT, "Typelib\" & Guid & "\", Versions)
        If Result = 0 Then
           On Error Resume Next
           For Each Version In Versions
               Result = oReg.GetStringValue(HKEY_CLASSES_ROOT, "Typelib\" & Guid & "\" & Version, "", Value)
               If Result = 0 Then
                  If InStr(LCase(Value), LCase(searchkey)) > 0 Then
                     Debug.Print Guid, "Version " & Version, Value
                  End If
               End If
           Next
           On Error GoTo 0
        End If
    Next
End Sub
jhkqcmku

jhkqcmku2#

好吧
我的问题是我运行的是64位Excel和32位版本的Acrobat Standard。我的电脑比我聪明,试图找到一个64位版本的acrobat.tlb,这就是为什么它不断创建一个文件路径到Program Files(这是64位程序),而不是Program Files (x86),即使它不存在。我通过以32位形式重新安装Office解决了此问题。
希望这对其他遇到同样问题的人有所帮助。

相关问题