0
我得到一個錯誤,我的代碼需要更新Office 64位系統。我無法理解需要進行哪些更改,因爲這在Office 32位上可以正常工作。VBA代碼64位系統
Private Declare Function GetTimeZoneInformationAny Lib "kernel32" Alias _
"GetTimeZoneInformation" (buffer As Any) As Long
我得到一個錯誤,我的代碼需要更新Office 64位系統。我無法理解需要進行哪些更改,因爲這在Office 32位上可以正常工作。VBA代碼64位系統
Private Declare Function GetTimeZoneInformationAny Lib "kernel32" Alias _
"GetTimeZoneInformation" (buffer As Any) As Long
我讀過了提供的指導方針。我認爲像這樣宣佈PtrSafe應該這樣做?
Private Declare PtrSafe Function GetTimeZoneInformationAny Lib "kernel32" Alias _
"GetTimeZoneInformation" (buffer As Any) As Long
32位系統和64位函數中的Windows API函數是不同的。
請嘗試下面的代碼。
#If Win64 Then
Private Declare Function GetTimeZoneInformationAny64 Lib "kernel32" Alias _
"GetTimeZoneInformation" (buffer As Any) As Long
#Else
Private Declare Function GetTimeZoneInformationAny Lib "kernel32" Alias _
"GetTimeZoneInformation" (buffer As Any) As Long
#End If
如果辦公系統是以64位模式編譯的話,Win64將會被刪除,否則它不會被刪除。
通過使用Win64來確定系統是64位還是32位,您可以使用適合您的辦公系統的功能。
錯誤說的是什麼? – SLaks 2014-10-05 02:18:26
請參閱[MSDN](http://msdn.microsoft.com/en-us/library/office/ee691831%28v=office.14%29.aspx#odc_office2010_Compatibility32bit64bit_Comparing32BitSystemsto64BitSystems)和[JKP](http://www.jkp -ads.com/articles/apideclarations.asp) – 2014-10-05 03:18:38
好的謝謝,但我很困惑。我應該使用VBA7還是Win64屬性? – 2014-10-05 17:05:03