VBA中"Object required"错误,但我正在使用Set来分配对象



我有这个功能:

Public Function nextBlock(featureBlockObj As FeatureBlock, endFeatureNumber As Variant) As FeatureBlock
Dim downstreamFeatureNumber As Variant
'get the feature number that this endpoint connects to
downstreamFeatureNumber = featureBlockObj.connectedFeatureNumber(endFeatureNumber)
'if it connects to a feature number, look that feature number up in blockDict
If isNumericNonBlank(downstreamFeatureNumber) Then
Set nextBlock = blockDict(downstreamFeatureNumber)
'if it does not connect, this is the last block in the sequence
Else
Set nextBlock = Nothing
End If
End Function

blockDict是字典;FeatureBlock是用户定义的类。

这一行:

Set nextBlock = blockDict(downstreamFeatureNumber)

抛出错误:

Object required.

我已经验证了以下内容:

  • downstreamFeatureNumber作为blockDict中的密钥存在
  • blockDict(downstreamFeatureNumber)是类型FeatureBlock
  • 的对象

那么为什么我不能使用SetblockDict()引用分配给nextBlock呢?

显然,blockDict(downstreamFeatureNumber)什么都不是,这是你的问题。在尝试分配给nextBlock之前,您需要对其进行限定(如果它不应该发生,那么这是一个完全不同的问题 - 而不是 VBA 问题(。

If isNumericNonBlank(downstreamFeatureNumber) _
AND (Not (blockDict(downstreamFeatureNumber) Is Nothing)) Then

最新更新