VBA中数据自动类型转换
浮点型数值→赋值给整数型数值
浮点类型数值赋值给整数类型变量时,自动转换为整数类型,并按四舍五入规则取整(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
作者QQ4577105