首页 > 解决方案 > VBA 数据类型“字节”在什么情况下有用?

问题描述

作为 VBA 的新手,并且根据我在这个网站上得到的建议,我正在努力养成在编码时指定数据类型的习惯。我一直在查看以下网页上列出的数据类型,并考虑了可能使用每种数据类型的场景:

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

但是,我有一个关于如何Byte使用的问题。在哪些情况下使用Byte比其他数据类型更可取?换句话说:0 -255 的数据范围什么时候会有优势?

我并没有太沉迷于数据类型,但绝对对这个感到好奇!

标签: excelvbabinary

解决方案


对于大多数随意的事情,您不需要Byte数据类型 - 即使您打算使用的值在Byte范围内。

您通常也不需要16 位Integer- 每当您需要 VBA 中的整数类型时,Long(32 位,有符号整数)是理想的,并且消耗比实际需要更多的字节不是问题可用内存以千兆字节为单位……但 1993 年的情况并非如此。

经验法则,如果您需要整数类型,请使用Long; 现代处理器针对处理 32 位整数进行了优化,并且在内部没有任何区别,因此使用Byte适合 8 位整数Integer的值、适合 16 位整数Long的值以及适合 32 位整数的值, ...实际上只是无用的额外工作,不会节省任何内存。

Byte是一种经常与数组一起使用的低级数据类型,例如,对于处理字符串编码之类的事情很有用。

一些标准库函数更适用于Byte值;VBA.Information.RGB想到:

函数RGB(红色为整数,绿色为整数,蓝色为整数)只要

虽然该函数很乐意与 any 一起使用Integer,但任何大于 255 的参数值都将上限为 255,因此RGB(1000, 0, 0)输出255:用Byte值提供它是有意义的,但仅用于自我文档目的 - 与内存消耗无关。


推荐阅读