关于VB数据类型转换的一个小小疑点,懂的高手来解答

关于VB数据类型转换的一个小小问题,懂的高手来解答
先上代码:
VB code
Private Sub Command1_Click()
Dim a As String
a = Val(Text1.Text)
MsgBox CInt(a)
End Sub


以上代码,是我看别人的视频教程里抄来的

我对此有如下疑问
变量a是字符串型的,通过val转换text1的内容后应该返回一个数值型的,但是为什么就能赋值给a呢?
a是字符串型的啊,类型不一样,怎么赋值呢?

并且以上代码,我运行过,也没有错误

还请高们手解答



------解决方案--------------------
Private Sub Command1_Click()
Dim a As String
a = Val(Text1.Text)
MsgBox CInt(a)
End Sub

此代码有??之嫌
Val(Text1.Text) :转换为数值类型
a = Val(Text1.Text):将一个数值赋值给字符串,VB内部会有个隐含的转换,将数值转换为文本
CInt(a):转换为数值
MsgBox CInt(a):又产生个隐含转换,将数值转换为文本