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
通过快速查看您的代码,我会推荐您使用.value
而不是.text
快速提示未来,
.text
返回string的“单元格”表示,所以它有时可能会返回#####和奇怪的string。
.value
给你的单元格(string,整型,布尔等等)的“核心”价值,所以通常使用VBA时,这是一个更好的select!