正常情況下,建議還是使用32位的office。但在特殊的情況下,你必須使用64位office。 那么64位的VBA如何調(diào)用32位的dll呢? 答案只有一個:用ActiveX.exe進(jìn)行包裝。在vb6中新建一個activeX.exe工程。 寫下如下的代碼: Public Function CreateInstance(ProgID As String) As Object Set CreateInstance = CreateObject(ProgID) End Function 進(jìn)行編譯。 64位的VBA代碼調(diào)用: Set MyObj32 = CreateObject("MyActiveXExe.cCOM32").CreateInstance("SomeLib.SomeClass") 這樣在64位vba中就可以使用32位的activeX.dll的類了。 注意:1、activeX.exe在使用中必須注冊。32位的activeX.dll也得注冊。 2、這樣的調(diào)用dll,性能會下降得很厲害,因為這是兩個進(jìn)程間的調(diào)用。 3、調(diào)試會增加一些麻煩。