VBA'不是对象错误'

时间:2017-07-20 19:34:31

标签: excel vba excel-vba

几乎所有其他语言都没有理由让这样的事情抛出错误:

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

1 个答案:

答案 0 :(得分:2)

通过快速查看代码,我建议您使用.value代替.text

未来的快速提示,

.text返回字符串的“单元格”表示形式,因此有时会返回#####,以及类似的奇怪字符串。

.value为您提供单元格的“核心”值(字符串,整数,布尔值等)。所以通常在使用VBA时它是一个更好的选择!