我有一个相当复杂的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