2016-06-21 86 views
0

从Excel 2010 32位到64位,我在新版本中创建的所有对象不能被其他计算机枝条认识Excel 2010中的32位,我alrady试图插入这个:不能识别Excel的VBA对象升级后,升级后的Excel版本

If VBA7 = True Then 
' 32 Bit API 
Private Declare PtrSafe Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As LongPtr 
Private Declare PtrSafe Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As LongPtr, lpExitCode As Long) As Long 
Else ' 64 bit API 
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long 
    Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long 
End If 

它不工作。

PLZ帮助:)

+0

您期望什么样的帮助? –

+0

我想能够使用32位和64位excel文件 – Tzahi

回答

1

这是不正确的条件编译。它应该看起来像这样:

#If VBA7 Then 
    ' 64 Bit API 
    Private Declare PtrSafe Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As LongPtr 
    Private Declare PtrSafe Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As LongPtr, lpExitCode As Long) As Long 
#Else ' 32 bit API 
    Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long 
    Private Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long 
#End If 
+0

我尝试它不工作...,maby我不正确使用它?我需要通过这个吗? – Tzahi

+0

你是什么意思的“它不工作”?怎么了? – Rory

+0

我点击按钮,所以没有什么happning,如果我进入设计模式,我点击双按钮,所以一个新的方法克里特是一个新的名字 – Tzahi