就楼主所说的问题来看,可能是你定义的数据类型不明确。看下面的例子:
Private Sub Command1_Click()
'这里的变量未经声明
a = 1234567890
MsgBox Len(a)'返回长度为10
b = a
MsgBox Len(b)'返回长度同样为10
End Sub
下一个例子:
Private Sub Command1_Click()
Dim b As Double'定义b的类型为双精度型
a = 1234567890
MsgBox Len(a)'返回长度是10
b = a
MsgBox Len(b)'返回长度 就是8
End Sub
再下一个例子:
Private Sub Command1_Click()
Dim b As Long '定义b的类型为长整型
a = 1234567890
MsgBox Len(a)'返回长度是10
b = a
MsgBox Len(b)'返回长度 这里就是4了
End Sub
再下一个例子:
Private Sub Command1_Click()
Dim b As Integer'定义b的类型为单精度型
a = 1234567890
'这就会出错了
MsgBox Len(a)'返回长度是10
b = a
MsgBox Len(b)'返回长度 这里就是4了
End Sub
再来一个例子
Private Sub Command1_Click()
Dim a As Double
a = 1234567890
MsgBox Len(Str(a))'用str函数转换一下,返回长度是11
Dim b As String
b = a
MsgBox Len(b)'这里返回10
End Sub
其实,LEN是用来计算字符串的长度的。
所以,用VB要养成习惯,变量必须经过声明——在模块开始的代码中加入 Option Explicit