特定の近くのセルの内容を確認し、その値に基づいて文字列を返す関数を VBA で作成しました。この関数をセルの列全体で実行したい。ただし、入力すると、すべてのセルに同じ値が表示されます。編集してEnterキーを押したセルの値です。シートの設定と再計算を試みましたが(とApplication.Volatile
の両方を使用)、どれも機能しませんでした。また、返される文字列に設定して、関数から何も返さないようにしましたが、Excelはこれが循環参照であると言います。助言がありますか?F9
ActiveSheet.Calculate
ActiveCell.Value
ここに私のコード(の関連部分)があります:
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