所以我正在处理一个应该合并一些pdf的宏。代码非常简单,使用PDFCreator安装程序(pdfforge.dll)提供的dll,但仅适用于Windows 32Bits(XP或7)。
这是代码
Dim Pdf As Object
Set Pdf = CreateObject("pdfforge.pdf.pdf")
Pdf.MergePDFFiles_2 FR1, Target & "FusionFR1.pdf", True
Pdf.MergePDFFiles_2 FR2, Target & "FusionFR2.pdf", True
Pdf.MergePDFFiles_2 FR3, Target & "FusionFR3.pdf", True
Pdf.MergePDFFiles_2 FR4, Target & "FusionFR4.pdf", True
请注意,FR1,FR2,FR3和FR4只是一些字符串数组,其中包含我尝试合并的那些pdf的路径。
正如我所说,只要PDFCreator版本提供pdfforge.dll,此代码在任何装有Windows 32位的计算机上都能正常工作。但是在Windows 64位上,我有一个" Excel自动化错误"上 设置Pdf = CreateObject(" pdfforge.pdf.pdf")
我想这是一个仅适用于32位系统的DLL,默认情况下,Windows 64位试图通过64位环境。所以我尝试通过两种方法为32位环境注册这个dll而没有令人满意的结果:
希望你们能帮助我:)。
PS:我正在使用Excel 2007
答案 0 :(得分:0)
好吧,我设法让它发挥作用!
我主要使用程序集注册工具regasm.exe
首先,我确保dll没有在任何地方注册,也就是说在Framework 32位和64位中,使用带有/ u参数的regasm.exe。
然后我在framework \ v2.0.50727 中使用/ codebase参数注册了dll(我从多个源读取了这个参数是关键)
最后,我在excel目录的根目录中创建了一个名为 excel.exe.config 的文本文件,其中包含
<?xml version="1.0"?>
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
这应该强制excel使用框架v2。
希望有一天能帮助别人;)