在什么情况下VBA数据类型“字节”有用?

时间:2019-05-14 17:12:40

标签: excel vba binary

由于VBA相对较新,并且根据在该站点上提供的建议,我试图养成在编码时指定数据类型的习惯。我一直在查看以下网页上列出的数据类型,并考虑了可能使用每种数据类型的情况:

https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/data-type-summary

但是,我对如何使用Byte有疑问。在哪种情况下,使用Byte比其他数据类型更可取?换句话说:0 -255的数据范围什么时候有利?

我对数据类型的了解不是太深,但是绝对对此很好奇!

2 个答案:

答案 0 :(得分:5)

对于大多数偶然的事情,即使您要使用的值在Byte范围内,也不需要Byte数据类型。

您通常不需要 16位Integer-每当您在VBA中需要整数类型时,Long(32位,带符号的整数)是理想的选择,并且当可用内存以 Giga 字节为单位进行测量时,不必担心会消耗比实际更多的字节……在1993年并非完全如此。

经验法则,如果需要整数类型,请使用Long;现代处理器针对使用32位整数和internally there's no difference whatsoever进行了优化,因此对于适合8位整数的值使用Byte,对于适合16位整数的值使用Integer,和Long表示适合32位整数的值,...实际上只是无用的额外工作,不会节省任何内存。

Byte是数组中经常使用的低级数据类型,例如对于处理string encodings等有用。

某些标准库函数与Byte值配合使用效果更好;我想到VBA.Information.RGB

Function RGB(Red As Integer, Green As Integer, Blue As Integer) As Long

虽然函数很乐意使用任何Integer,但是任何大于255的参数值将以255为上限,因此RGB(1000, 0, 0)输出255:将Byte馈入这样,值才有意义,但仅出于自我说明目的-与内存消耗无关。

答案 1 :(得分:2)

VBA并非专用于Excel。考虑访问(以保留在Office工具中)。 当您计划在表中存储一百万行时,可能需要对某些字段使用Byte。然后,您可以将Byte字段读入Byte变量中。
正如@Matthieu所说,对于Excel来说,它几乎没有价值。
还请记住,AndOr是VBA中的按位运算。例如,我已经使用Byte +按位运算符来检查权限。