VBA中数据自动类型转换

发布时间 2023-06-23 21:21:58作者: iZJ"Qq4577105

浮点型数值→赋值给整数型数值

浮点类型数值赋值给整数类型变量时,自动转换为整数类型,并按四舍五入规则取整(x.5向下取整)。

Dim i As Integer
i = 1.23 'i -> 1
i = 0.9 'i -> 1
i = 1.5 'i -> 1

 

字符串表示的纯数字→数值

使用文本表示的纯数字,表达式和赋值语句中自动转换为数字。以下以Double类型变量为例。

Dim d As Double
d = "123" 'd -> 123
d = "1.23" 'd -> 1.23
d = "1" + 2 'd-> 3

 

数值→逻辑值

当数字赋值给逻辑类型变量时,0表示Fale,其余数字表示True

Dim b As Boolean
b = 1 'b -> True
b = 1.2 'b -> True
b = -2 'b -> True
b = 0 'b -> False

 

文本→逻辑值

使用文本表示的纯逻辑值,赋值语句中自动转换为逻辑值。

Dim b As Boolean
b = "True" 'b -> True
b = "false" b '-> False

 

文本→日期

赋值语句中,文本类型的日期和时间自动转换为本应的类型。

Dim birthday As Date
Dim time As Date

birthday = "2018-1-1"    '通常我们给日期变量赋值都是采用 #日期# 这样写
time = "12:00:00"

 

任何数据类型→文本

所有类型数据,表达式和赋值语句中可以自动转换为文本。 

Dim s As String
s = 123     'Left(s,2) -> 12
s = 1.23    'Left(s,2) -> 1.
s = False   'Left(s,2) -> Fa
s = #10:00:00# 'Left(s,2) -> 10

 

3种数据类型之间的转换

上述介绍了两个类型之间的转换,除此之外,可以在三个类型之间也可以自动转换。转换原理还是会回到两个类型之间的转换。

例如,使用文本表示的纯数字,赋值语句中也可以自动转换为逻辑值,原理是文本→数字→逻辑值

Dim b As Boolean
b = "1" 'b -> True
b = "0" b '-> False
b = "0.1" b '-> True

 

 

转载:https://www.lanrenvba.com/c/vba-start/vba-basic/basic-data-types/conversion