2016-06-21 132 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