excelでは、条件が一致した場合は0に、そうでない場合は編集可能にするセルを追加します。VBAで単純な条件が発生することはありません
If Range("B4").Value = 1 Then Range("C4").Value = 0
しかし、何がB4が1に設定されていても起こっていない:私の条件は、別のセルの値= 1。この私の最小限の例VBAラインであるということです!このコードには何かがありますか?ありがとう!
excelでは、条件が一致した場合は0に、そうでない場合は編集可能にするセルを追加します。VBAで単純な条件が発生することはありません
If Range("B4").Value = 1 Then Range("C4").Value = 0
しかし、何がB4が1に設定されていても起こっていない:私の条件は、別のセルの値= 1。この私の最小限の例VBAラインであるということです!このコードには何かがありますか?ありがとう!
はあなたが変える/分析する特定のワークシートでRange
オブジェクトを修飾します。これはVBAのベストプラクティスであり、必要な特定の場所でコードが動作するようにします。例えば
:
With Worksheets("Sheet1")
If .Range("B4").Value = 1 Then .Range("C4").Value = 0
End With
それとも
If Worksheets("mySheet").Range("B4").Value = 1 Then
Worksheets("yourSheet").Range("C4").Value = 0
End If
ありがとう - それは重要なポイントです。しかし、まだ何も起こっていません。私の場合、 "mySheet" = "yourSheet"。それ以外は、あなたが提案する全く同じ(秒)コードを使用しています。とても奇妙。 –
また、シートを参照する必要があります。例えば、あなたが言及したシートを、見るに
If ActiveSheet.Range("B4").Value = 1 Then ActiveSheet.Range("C4").Value = 0
、これを試してみてください。
Sub TestMe()
If Range("B4").Value = 1 Then Range("C4").Value = 0
MsgBox (Range("B4").Parent.Name)
End Sub
'ActiveSheet'も間違った答えを返すかもしれません! –
@ScottHoltzman - OPが何をしているかによって異なります。しかし、彼が言うように、私は彼が彼の前のシートを見ていると思うし、更新されていないと思う。 – Vityata
本当に、私はアクティブシートで作業していました。私は名前でシートを選んだ。まだ何も起こっていません –
あなたはセル 'B4'またはセル' R4'を意味するか...多分あなたの質問の最後にありそうなタイプミス? –
このコードはどこにありますか?それは出来事ですか?モジュールで?ワークシートのコードで?あなたの言葉には「R4」と書かれていて、あなたのコードには 'B4'と書かれていますか? –
ヒットした場合、問題のある行にブレークポイントを設定します。範囲は "Range"( "B4")です。価値は何ですか? – peakpeak