几乎所有其他语言都没有理由让这样的事情抛出错误:
Sub EnsureLength(ByRef Cell As Range)
If InRange(Cell, Range("A2:A99999")) Then
Dim Length As Integer
Length = 20
Dim Text As String
Text = Cell.Text
If Len(Cell.Text) > Length Then
Cell.Text = Left(Text, Length) 'Expected an Object.
End If
ElseIf InRange(Cell, Range("B2:B99999")) Then
End If
End Sub
答案 0 :(得分:2)
通过快速查看代码,我建议您使用.value
代替.text
未来的快速提示,
.text
返回字符串的“单元格”表示形式,因此有时会返回#####,以及类似的奇怪字符串。
.value
为您提供单元格的“核心”值(字符串,整数,布尔值等)。所以通常在使用VBA时它是一个更好的选择!