我有一个 Excel 工作簿,它使用 VBA 从工作表创建 PDF,并通过 Outlook 通过电子邮件发送它们。
当我单击按钮创建 PDF 并发送时,Microsoft Visual Basic 向我显示以下错误消息:
编译错误:找不到项目或库
然后调试器会突出显示以下代码:
Function Create_PDF_Sheet_Level_Names(NamedRange As String, FixedFilePathName As String, _
OverwriteIfFileExist As Boolean, OpenPDFAfterPublish As Boolean) As String
'This function will create a PDF with every sheet with
'a sheet level name variable <NamedRange> in it
Dim FileFormatstr As String
Dim Fname As Variant
Dim Ash As Worksheet
Dim sh As Worksheet
Dim ShArr() As String
Dim s As Long
Dim SheetLevelName As Name
'Test If the Microsoft Add-in is installed
If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
& Format(Val(Application.Version), "00") & "\EXP_PDF.DLL") <> "" Then
...
尤其是“环境”部分:
'Test If the Microsoft Add-in is installed
If Dir(Environ("commonprogramfiles") & "\Microsoft Shared\OFFICE" _
& Format(Val(Application.Version), "00") & "\EXP_PDF.DLL") <> "" Then
它应该能够找到 EXP_PDF.dll,因为它确实存在于:
C:\Program Files\Common Files\microsoft shared\OFFICE12\EXP_PDF.DLL
用户使用的是Office 2007,所以正确对应的文件夹是OFFICE12。
我曾尝试运行 Regsvr32.exe 来注册 dll,但是没有作用。
答案1
这里是否有一个可以解决此问题的网站
将文件 exp_pdf.dll 复制到请求 exp_pdf.dll 的程序的安装目录。如果此方法无效,则必须将 exp_pdf.dll 复制到系统目录。默认情况下,此目录为:
Windows 95/98/Me - C:\Windows\System Windows NT/2000 - C:\WINNT\System32 Windows XP、Vista、7 - C:\Windows\System32如果您使用的是 64 位版本的 Windows,您还应该将 exp_pdf.dll 复制到 C:\Windows\SysWOW64\
备份原始文件 覆盖所有现有文件 重启电脑。如果问题仍然存在,请尝试以下操作: 打开 Windows“开始”菜单并选择“运行...”。输入 CMD 并按 Enter 键(如果您使用的是 Windows ME,请输入 COMMAND)输入 regsvr32 exp_pdf.dll 并按 Enter 键。
如果您找不到 Windows 目录,请尝试以下操作:打开 Windows 开始菜单并选择“运行...”。输入 CMD 并按 Enter 键(如果您使用 Windows ME,则输入 COMMAND)输入 %WINDIR% 并按 Enter 键。
答案2
Windows 更新后,这里也出现了同样的问题。我在 If Dir(Environ("commonprogramfiles").... 前面加了一个 ',在 Else 和 End If 前面加了另一个 ',修复了这个问题。基本上,我消除了该添加检查。:) 可以肯定的是,Microsoft 在最新更新中更改了 dll 路径或名称,我跳过了此检查。希望这会有所帮助。