我在 VBA 中编写了一个函数,它查看某些附近单元格的内容,然后根据它们的值返回一个字符串。我希望这个函数在一整列单元格上运行。但是,当我填写时,每个单元格都显示相同的值,即我编辑并按下回车键的单元格的值。我尝试过设置Application.Volatile
和重新计算工作表(都使用F9
和ActiveSheet.Calculate
),但这些都没有奏效。我还尝试设置ActiveCell.Value
为我想要返回的字符串,然后不从函数返回任何内容,但 excel 说这是一个循环引用。有什么建议么?
这是我的代码(的相关部分):
Function foginSpeechP()
Application.Volatile True
ActiveSheet.Calculate
'.....
If scenario = "SR-1A" Then
first = "nofog"
secnd = "fog"
ElseIf scenario = "SR-1B" Then
first = "fog"
secnd = "nofog"
Else: foginSpeechP = "NOT A REAL SCENARIO in foginSpeechP"
End If
If (IsNumeric(ActiveCell.Offset(0, 4)) And ActiveCell.Offset(0, 4) > 0) Then
currTimeStamp = ActiveCell.Offset(0, 4)
Else: foginSpeechP = "NO TIME STAMP IN FOGINSPEECHP()"
End If
If currTimeStamp < speechFogChange Then
foginSpeechP = first
'ActiveCell.Value = first
Else: foginSpeechP = secnd
'ActiveCell.Value = secnd
End If
End Function