在 VBA 中将字符串转换为数字

您所在的位置:网站首页 键盘转化数字怎么转换 在 VBA 中将字符串转换为数字

在 VBA 中将字符串转换为数字

#在 VBA 中将字符串转换为数字 | 来源: 网络整理| 查看: 265

本文将讨论如何在 VBA Excel 中将字符串转换为数字。有一个分步指南和许多示例供我们理解。

在 VBA 中将字符串转换为数字

在 VBA 代码中,必须将保存为文本的数字转换为实数。我们有许多转换选项。

我们可以将字符串转换为 Byte、Integer、Long、Single、Double、Currency 和 Decimal 数据类型的数字。我们将通过示例详细讨论每个转换。

在 VBA 中将字符串转换为字节

借助以下代码,我们可以轻松地将字符串转换为多个字节数据类型。

# vba byte = CByte(str)

我们可以使用 CByte() 函数来实现这种转换。上面的语句有两个项目:CByte() 和字符串。

CByte() 函数强制字符串变为字节类型。CByte() 通常用于执行国际化的字符串到字节数据类型的转换。

简单来说,CByte() 通常区分不同的十进制/千位分隔符和许多取决于你计算机位置的货币选项。字节数据类型可以容纳的范围是 0 到 225。如果你的字符串不在此范围内,则会发生错误。

这是一个宏示例,其中我们将 convertStr 作为参数将字符串转换为字节。

# vba Function convertStr(newStr As Variant) MsgBox (CByte(newStr)) End Function Sub newFunc() convertStr ("12") End Sub

输出:

在 VBA 中将字符串转换为整数

借助以下语句,你可以轻松地将字符串转换为整数数据类型的数字。该函数的语法如下所示。

# vba CInt(newStr)

建议使用 Clnt() 函数将字符串更改为整数数据类型。此函数强制字符串更改为整数数据类型。

如果字符串包含分数,此函数会将其转换为整数。如果分数正好是 0.4,此函数会将其更改为最接近的偶数。

例如:

# vba 0.4 will become 0. 1.6 and 2.4 both will become 2. 3.7 and 4.3 will become 4

Clnt() 通常用于执行国际通用的字符串转换为整数数据类型。简单来说,Clnt() 通常区分不同的十进制/千位分隔符和许多取决于我们计算机位置的货币选项。

整数数据类型可以容纳数字的范围是 -32,768 到 32,767。如果你的字符串不在此范围内,则会发生错误。

让我们通过一个示例并使用 CInt() 函数,如下所示。此示例将 newStr 设置为将字符串更改为整数的参数,如下所示。

# vba Function convertToInteger(newStr As Variant) MsgBox (CInt(newStr)) End Function Sub newFunc() convertToInteger ("12.5") End Sub

输出:

在 VBA 中将字符串转换为长整型

我们可以使用 CLng() 函数来实现这种转换。该函数的语法如下所示。

# vba CLng(Str)

当我们的目标是将字符串更改为几种长数据类型时,我们可以使用 CLng() 函数。此语句中的项目是 CLng() 和字符串。

此函数强制将字符串更改为长数据类型。

如果一个字符串包含一个分数,这个函数会将它四舍五入。如果分数恰好为 0.4,此函数会将其更改为最接近的偶数,如下所示。

# vba 0.4 will become 0. 1.6 and 2.4 both will become 2. 3.7 and 4.3 will become 4

CLng() 通常用于执行国际化的字符串到长数据类型的转换。简单来说,CLng() 通常区分不同的十进制/千位分隔符和许多取决于你计算机位置的货币选项。

整数数据类型可以容纳数字的范围是 -2,147,483,648 到 2,147,483,647。如果你的字符串不在此范围内,则会发生错误。

让我们看一个例子并使用 CLng() 函数。在此示例中,我们将 newStr 设置为参数以将字符串更改为长字符串,如下所示。

# vba Function convertToLong(newStr As Variant) MsgBox (CLng(newStr)) End Function Sub newFunc() convertToLong ("15.7") End Sub

输出:

长数据类型与整数数据类型只有一件事不同。较大的数字在长数据类型中是可以接受的。

但是以前内存不够用,不推荐使用长数据类型。

在现代,记忆不再是问题。我们可以使用 long 数据类型而不是整数。

在 VBA 中将字符串转换为单个字符串

借助以下语法,我们可以轻松地将字符串转换为多个单一数据类型,如下所示。

# vba CSng(str)

我们可以使用 CSng() 函数来实现这种转换。上面的语句中有两个项目,CSng() 和字符串。

此函数强制将字符串更改为单一数据类型。

CSng() 通常用于执行国际化字符串到单一数据类型的转换。CSng() 通常区分不同的十进制/千位分隔符和取决于计算机位置的货币选项。

单个数据类型可以容纳浮点数的范围是

当值为负时,3.402823E38 到 -1.401298E-45 值为正时为 1.401298E-45 至 3.402823E38

如果你的字符串不在此范围内,则会出现错误。如下所示,让我们来看一个示例,其中我们将 newStr 设置为参数以将字符串更改为单个字符串。

# vba Function convertToSingle(newStr As Variant) MsgBox (CSng(newStr)) End Function Sub newFunc() convertToSingle ("1.3") End Sub

输出:

在 VBA 中将字符串转换为双精度

借助以下语句,我们可以轻松地将字符串转换为多种双精度数据类型。该函数的语法如下所示。

# vba CDbl(str)

建议使用 CDbl() 函数将字符串更改为双精度数据类型。此函数强制将字符串更改为双精度数据类型。

CDbl() 通常用于执行国际感知的字符串转换为双精度数据类型。

简而言之,CDbl() 通常区分独特的十进制/千位分隔符和许多取决于你计算机位置的货币选项。

double 数据类型可以容纳浮点数的范围如下。

-1.79769313486231E308 到 -4.94065645841247E-324 当值为负数时。 当值为正时,4.94065645841247E-324 到 1.79769313486232E308。

如果我们的字符串不在此范围内,则会出现错误。如下所示,让我们通过一个示例,在该示例中,我们将 newStr 设置为参数以将字符串更改为双精度。

# vba Function convertToDouble(newStr As Variant) MsgBox (CDbl(newStr)) End Function Sub newFunc() convertToDouble ("1.345") End Sub

输出:

在 VBA 中将字符串转换为货币

借助以下语句,你可以轻松地将字符串转换为多种货币数据类型。该函数的语法如下所示。

# vba CCur(newStr)

建议使用 CCur() 函数将字符串更改为货币数据类型。此函数强制将字符串更改为货币数据类型。

CCur() 通常用于执行国际通用的字符串转换为货币数据类型。

这意味着 CCur() 通常区分独特的十进制/千位分隔符和许多取决于你计算机位置的货币选项。货币数据类型可以容纳 10,000 的整数。

因此,一种货币可以在小数点左侧容纳 15 个数字,在小数点右侧容纳 4 个数字。因此,一种货币可以容纳数字的范围是: -922,337,203,685,477.5808 至 922,337,203,685,477.5807。

如果你的字符串不在此范围内,则会出现错误。

如下所示,让我们来看一个示例,在该示例中,我们将 newStr 设置为参数以将字符串更改为货币。

# vba Function convertToCurrency(newStr As Variant) msgBox(CCur(newStr)) End Function 在 VBA 中将字符串转换为十进制

我们可以使用下面的语句来实现这种转换。

# vba CDec(newStr)

当我们的目标是将字符串更改为多种十进制数据类型时,我们可以使用 CDec() 函数。此函数强制将字符串更改为 Variant 数据类型的十进制数据子类型。

简单来说,CDec() 将返回一个更改为 Decimal 子类型的变体。

CDec() 通常用于将字符串转换为十进制数据类型。这意味着 CDec() 通常区分不同的十进制/千位分隔符和许多取决于你计算机位置的货币选项。

十进制数据类型可以携带具有 10 的可变幂的整数。幂表示可以出现在小数点右侧的位数。

小数可以保存的值的范围如下所示。

当比例为 0 时,即不存在小数,范围从 79,228,162,514,264,337,593,543,950,335 到 79,228,162,514,264,337,593,543,950,335。 有 28 位小数时,最大值和最小值分别为 +7.9228162514264337593543950335 和 -7.9228162514264337593543950335。 不包含零值的最小值是 -0.00000000000000000000000000001 和 0.0000000000000000000000000001。

如下所示,让我们通过一个示例,其中我们将 newStr 设置为参数以将字符串更改为小数。

# vba Function convertToDecimal(newStr As Variant) msgBox(CDec(newStr)) End Function


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3