excel - VBA 数据类型“字节”在什么情况下有用?
问题描述
作为 VBA 的新手,并且根据我在这个网站上得到的建议,我正在努力养成在编码时指定数据类型的习惯。我一直在查看以下网页上列出的数据类型,并考虑了可能使用每种数据类型的场景:
https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/data-type-summary
但是,我有一个关于如何Byte
使用的问题。在哪些情况下使用Byte
比其他数据类型更可取?换句话说:0 -255 的数据范围什么时候会有优势?
我并没有太沉迷于数据类型,但绝对对这个感到好奇!
解决方案
对于大多数随意的事情,您不需要Byte
数据类型 - 即使您打算使用的值在Byte
范围内。
您通常也不需要16 位Integer
- 每当您需要 VBA 中的整数类型时,Long
(32 位,有符号整数)是理想的,并且消耗比实际需要更多的字节不是问题可用内存以千兆字节为单位……但 1993 年的情况并非如此。
经验法则,如果您需要整数类型,请使用Long
; 现代处理器针对处理 32 位整数进行了优化,并且在内部没有任何区别,因此使用Byte
适合 8 位整数Integer
的值、适合 16 位整数Long
的值以及适合 32 位整数的值, ...实际上只是无用的额外工作,不会节省任何内存。
Byte
是一种经常与数组一起使用的低级数据类型,例如,对于处理字符串编码之类的事情很有用。
一些标准库函数更适用于Byte
值;VBA.Information.RGB
想到:
虽然该函数很乐意与 any 一起使用Integer
,但任何大于 255 的参数值都将上限为 255,因此RGB(1000, 0, 0)
输出255
:用Byte
值提供它是有意义的,但仅用于自我文档目的 - 与内存消耗无关。