我有一個相當複雜的Excel VBA項目,在32位系統上運行良好,我現在正在嘗試使它在64位系統上也能正常工作。我已經解決了所有的函數聲明,但仍然遇到一些與數據類型有關的問題。使長變量在64位和32位Excel中工作VBA
做一些研究,我想出這個(從MSDN頁):
的實際數據類型LongPtr解析取決於Office的版本,它在運行:LongPtr解決爲長在Office的32位版本和LongPtr解決爲LongLong在64位版本的Office中。
但是,這是否意味着我可以從
Dim x as Long
我所有的Dim
語句改爲
Dim x as LongPtr
我應該做的是無處不在?或者我得到了棍棒的錯誤結局?有沒有這種情況會導致無效或應該避免這種變化?
你是否需要聲明該類型?如果你只是把變量作爲變量(不要聲明類型),你的代碼可能會稍微慢一些,但是VBA應該在後面做很多努力。換句話說 - 爲什麼不把它當作「長」呢?爲什麼你想要創建一個變量64位,當它顯然只需要32位長。我想知道你是否正在解決一個不存在的問題。也許你可以更清楚地解釋(用一個小代碼示例)_如果你認爲你需要的東西不是「長」。 – Floris
你不需要那樣做。只是['使用LongPtr指針和句柄'](http://msdn.microsoft.com/en-us/library/office/gg251378%28v=office.15%29.aspx) –
我同意@LưuVĩnhPhúc - 你都在想這個。 – Floris