VBA CDBL功能|如何将值转换为双精度数据类型?

Excel VBA CDBL功能

VBA CDBL 是内置的数据类型转换函数,此函数的用途是将任何给定变量的值的数据类型转换为Double数据类型,此函数仅采用单个参数,即变量本身的值。

在VBA中,“ CDBL”代表 “转换为双倍”。 此函数将给定的数字转换为Double数据类型。看一下CDBL函数的语法。

  • 表达 是我们试图转换为Double数据类型的值。

通过应用CDBL功能,可以转换存储为双精度数据类型以外的任何浮点数。

指向此处要记住: 只能将数值转换为Double数据类型。除数值以外的任何内容都不能转换为双精度类型,因此最终显示如下的“ VBA中的类型不匹配错误”。

您是否曾在VBA编码中使用过双重数据类型?

如果不是,那么现在就值得一看。 Double是数据类型,用于存储数字的小数位。我们最多可以有13个浮点十进制数字。

有关示例,请查看下面的VBA代码。

在上面,我已经将变量(k)类型定义为Integer。 Dim k作为整数

接下来,我将值分配为 k = 25.4561248694615

当我运行代码时,我们将得到如下结果。

我们得到的结果为25。由于我们已将变量定义为Integer VBA,因此舍入到最接近的整数值。

为了按原样显示结果,我们需要将变量类型从Integer更改为Double。

这应该为我们提供分配给变量的确切数字。

好的,记住这一点,我们还可以将所有存储为非双精度数据类型的分数转换。

使用VBA CDBL功能的示例

您可以在此处下载此VBA CDBL功能模板– VBA CDBL功能模板

范例#1

首先,请看下面的代码。

代码:

 Sub Double_Example1()Dim k作为字符串k = 48.14869569 MsgBox k End Sub 

现在,我将运行代码,看看会发生什么。

即使VBA变量类型为“字符串”,它仍显示十进制值。这是因为String可以是任何类型的数据类型,因此十进制或浮点数将按原样显示。

现在,我将数据类型从字符串更改为Integer。

代码:

 Sub Double_Example1()Dim k作为整数k = 48.14869569 MsgBox k End Sub 

现在,我将运行代码,看看会发生什么。

这是CDBL函数将整数数据类型转换为double时至关重要的地方。因此,下面的代码对您来说是相同的。

代码:

 Sub Double_Example1()Dim IntegerNumber作为字符串Dim DoubleNumber作为Double IntegerNumber = 48.14869569 DoubleNumber = CDbl(IntegerNumber)MsgBox DoubleNumber End Sub 

这会将字符串数据类型的值转换为Double。

范例#2

现在,我们将存储为Variant到Double数据类型的数字854.6947转换。

代码:

 Sub Double_Example2()Dim VaraintNumber Dim DoubleNumber作为Double VaraintNumber = 854.6947 DoubleNumber = CDbl(VaraintNumber)MsgBox DoubleNumber结尾Sub 

我已声明为“ Variant”的第一个变量。 昏暗变数

笔记: 如果未声明变量类型,它将成为通用数据类型Variant。

接下来,我声明了另一个变量 即Dim DoubleNumber为Double

对于第一个变量 VaraintNumber, 我们已将值指定为854.6947。

现在,通过使用第二个变量,我们已应用CDBL函数将Variant值转换为Double数据类型。

DoubleNumber = CDbl(VaraintNumber)

最后一部分是在消息框中显示结果。 MsgBox DoubleNumber

现在,我将运行代码以查看结果。

要记住的事情

  • 双精度数据类型只能接受数字。
  • 如果提供了文本值,将导致类型不匹配的错误。
  • 双精度数据类型只能显示13位浮点数。