我正在尝试使用以下VBA代码确定Excel电子表格中标头的列号:
Dim aCell As Range
Set aCell = Sheet1.Rows(1).Find(What:="ContractDescription", LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
然后,下面的代码行给出了错误:
MsgBox (aCell.Column)
它给出了运行时错误91:“未设置对象变量或With块变量”。
根据我在网上阅读的帖子,当您尝试将一种类型的值分配给已声明为另一种类型的变量时,会发生此错误。
但是,我试图理解为什么我在这里得到这个错误,因为它aCell
是一个范围对象,我只是在拍摄aCell.Column
,但是当我这样Range("A1").Column
做时,我的确得到了有效的1
打印在屏幕上。
那么,这可能是导致问题的原因吗?
您收到此错误的原因是因为它aCell
为null(未找到匹配项)。在使用方法的范围Find
(或等效范围,可能是Nothing
)之前,必须在以下几行上设置条件:
If (Not aCell Is Nothing) Then
MsgBox aCell.Column
End If
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句