M. *_*. H 8 variables excel vba excel-vba
我有一个非常复杂的Excel VBA项目,它在32位系统上运行良好,我现在正试图让它适用于64位系统.我已经解决了所有函数声明,但仍然遇到了Long数据类型的一些问题.
做一些研究,我想出了这个(来自MSDN页面):
LongPtr解析为的实际数据类型取决于其运行的Office版本:LongPtr在32位版本的Office中解析为Long,LongPtr在64位版本的Office中解析为LongLong.
但这是否意味着我可以改变我的所有Dim陈述
Dim x as Long
Run Code Online (Sandbox Code Playgroud)
至
Dim x as LongPtr
Run Code Online (Sandbox Code Playgroud)
我到处应该这样做吗?或者我得到了错误的结束?是否存在不起作用的情况或应避免这种变化?
我同意@Ken White 的回答。
备注(对于一些答案):
您仍然可以在 Office 64 位中使用 Long 数据类型。它将兼容在 32 位和 64 位 Office 中运行。
但有时,您没有选择,因为某些对象的属性在 32 位与 64 位中的数据类型不同。例如,如果您使用 ADO:
Dim rstTest As ADODB.Recordset
Run Code Online (Sandbox Code Playgroud)
rstTest.RecordCount 在 32 位 Office 上很长rstTest.RecordCount 是 64 位 Office 上的 LongLong如果要将 rstTest.RecordCount 存储到 lngCount 变量中,则必须使用 LongPtr 声明此变量,否则它将不适用于 32 位和 64 位:
Dim lngCount As LongPtr
lngCount = rstTest.RecordCount
Run Code Online (Sandbox Code Playgroud)
Mat*_*ann -3
试试龙龙。从规范来看,LongLong 似乎是 32 位类型 Long 的替代品。
| 归档时间: |
|
| 查看次数: |
7640 次 |
| 最近记录: |