VBA Long(示例)| Excel VBA中长数据类型的分步指南

VBA中的长数据类型是什么?

Long是VBA中的数据类型 它用于存储数值,我们知道整数也保存数值,但是Long与整数不同,因为在长数据类型的情况下数据存储的范围很大,在长数据类型中我们也可以保存十进制值同样,这是一个内置的数据类型。

“长” 顾名思义,它应该具有巨大价值。 “长”是VBA Excel中的数字数据类型。

Excel VBA中的long数据类型可以为正数保存0到2、147、483、647的值,对于负数可以保存0到-2、147、483、648的值。

VBA Long数据类型需要4个字节的计算机内存存储空间,这是两倍 整数 数据类型变量存储器(2个字节),其中一半 双倍的 数据类型变量存储器(8字节)

我从未见过要在我的短职业生涯中充分利用VBA Long数据类型的限制的方案。但是,我将向您展示一些示例以更好地理解它。

VBA Long数据类型的示例

以下是excel VBA Long数据类型的示例。

您可以在此处下载此VBA Long数据类型Excel模板– VBA Long数据类型Excel模板

VBA Long示例#1

一旦将变量数据类型声明为“ Long”,就可以将值从-2、147、483、648分配给2、147、483、648。

例如,将变量声明为long数据类型。

代码:

 Sub Long_Example1()Dim k作为长端Sub 

让我们将值分配为工作表的总行数。

要在excel工作表代码中获取总计数行是 “行。数数”

代码:

 Sub Long_Example1()Dim k只要Long k = Rows.Count End Sub 

现在,在消息框中显示该值。

代码:

 Sub Long_Example1()Dim k只要Long k = Rows.Count MsgBox k End Sub 

运行此代码,然后查看工作表中的总行数。

它说我们在工作表中有超过一百万行。

现在,为了更好地理解,我将数据类型从LONG更改为INTEGER。

代码:

 Sub Long_Example1()Dim k作为整数k = Rows.Count MsgBox k End Sub 

如果运行VBA代码,我将收到错误消息,显示为“溢出”。

之所以在VBA中出现此错误,是因为数据类型“ Integer”只能保存从-31768到32767的值。在这种情况下,“行。 Count”将返回大于“整数”变量限制的数字。

将超过一百万的值分配给只能容纳32767的变量会导致此处出现溢出错误。

VBA Long示例#2

使用长变量查找最后一行

查找工作表中最后使用的行是最重要的编码。为了找到工作表的最后使用的行,需要声明变量。在声明变量和分配数据类型时,需要一些常识。

假设您的数据结尾为25000行,如下图所示。

现在我知道最后使用的行号是25000,为此,我们不需要“ LONG”数据类型,因为“ INTEGER”数据类型可以给我最后一行。

请看下面的代码以获取信息。

代码:

 Sub Long_Example1()Dim k As Integer k =单元格(Rows.Count,1).End(xlUp).Row MsgBox k End Sub 

如果运行此代码,我将获得当前正在处理的工作表的最后使用的行号。

作为编码人员,重要的是要知道将来将要拥有的数据大小。因为目前数据可能会在第25000行结束,但是如果数据增加到“整数”限制(即32767)以上,则会导致溢出错误。

例如,我将数据增加到第32768行。

现在,如果我再次运行相同的代码,我将不会获得该值,而是会出现如下错误。

请记住,我已经将限制增加了“整数”值的限制之外的1,所以出现了溢出错误。

因此,在为变量分配数据类型之前,了解数据的大小非常重要。将变量声明为“ LONG”始终是一个更好的选择,而不必考虑将来的数据大小。

Excel VBA长变量的替代方法

您必须已经在考虑如果我们要保留的值超过long变量的限制,该怎么办。为此,我们需要使用不同的数据类型,即VBA“字符串”或“ Variant”

记住,当它越过数字2147483647时,我们将在VBA中使用LONG数据类型得到溢出错误。要存储更多的数字,我们需要使用“ String”或“ Variant”数据类型。

对于字符串

代码:

 Sub Long_Example2()Dim k作为字符串k = 2147483648 MsgBox k End Sub 

对于变体

代码:

 Sub Long_Example2()Dim k作为变体k = 2147483648 MsgBox k End Sub 

当我们运行上述代码时,它将显示所提到的数字。