1

ここに画像の説明を入力


ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""India"",RC,"""")"こんにちは、 If the country is not India then Check1, Check2 and Check3 should be emptyのような式を入れようとしました。それ以外の場合は、独自の値を表示する必要があります。その数式を入力しようとすると、Excel で循環参照の警告が表示されました。その式が欲しいだけです。どんな助けでも大歓迎です。

4

2 に答える 2

0

数式が直接的または間接的に独自のセルを参照すると、循環参照が作成されます。

ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""India"",RC,"""")"

あなたはアクティブセルに式を書いています。式はRC[-1]="India"の場合と、アクティブセルと同じ 真のRCの場合を示しています。したがって、循環参照エラーが発生しています。

しかし、この式を以下のようにE列に入れるとうまくいきます。

Range("E2:E" & lastRow).FormulaR1C1 = "=IF(RC[-4]=""India"",RC[-3],"""")"

または、以下は単純な VBA コードです。

Sub sample()
    Dim lastRow As Long
    lastRow = Range("A65000").End(xlUp).Row

    For i = 2 To lastRow
        If (InStr(1, Cells(i, 1), "India") <= 0) Then
            Range("B" & i & ":D" & i).Clear
        End If
    Next
End Sub
于 2013-04-01T07:19:20.303 に答える
0

これは現在の数式を参照しているため、結果としてのみ使用することはできません。RC

オプション 1:別のセルを検証済みセルにする必要があります。たとえば、次のようにすると、現在のセルの左側にセルが作成されます。

ActiveCell.Offset(0,1).FormulaR1C1 = "=IF(RC[-2]=""India"",RC[-1],"""")"

コメント後のオプション 2:左のセルがインドでない場合にコード行が現在のセルの値のみをクリアする場合は、これを使用します。

If ActiveCell.Offset(0,-1).Value <> "India" Then ActiveCell.Value = ""

オプション 3: RC のデフォルト値を維持する必要があるが、RC[-1] の値がインドと等しくなくなった場合にそれを上書きする数式が必要な場合は、次のように数式で値をハードコーディングする必要があります。

ActiveCell.FormulaR1C1 = "=IF(RC[-1]=""India"",""" & ActiveCell.Value & ""","""")"
于 2013-04-01T11:04:22.297 に答える