2017-12-22 28 views
0

セルA1の値をB1の値を反映するように更新しようとしていますが、セルA1の式を使用していません。たとえば、B1 = 5の場合、デフォルトではA1の値を5に更新する必要があります。B1が空白の場合はA1に、B1の場合は数値を入力できる必要があります。 A1は常にその値を反映する必要があります。私はVBAを試みましたが、うまくいきません。私はVBAなしでこれを行う方法があることを望んでいます。どんな助けもありがとうございます。Excelの値を別の値に基づいて更新する

+1

いいえ、vbaなしの方法はありません。A1に入れられた数式は、 serはA1でタイプしました。ユーザーが定義した値、たとえばC1を入れることができる3番目のセルを使用すると、A1の式は次のようになります。 '= IF(B1 =" "、C1、B1)' –

+0

いつも通り。 – John

答えて

0

それはVBAを使用して空にされていないA1場合B1B1をコピーするVBA

(すべてのセルが変更される時間)

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not IsEmpty(Range("B1").Value) Then 
     Range("A1").Value = Range("B1").Value 
    End If 
End Sub 

同じものを使用しなくても可能ではないですが、B1になる場合空の場合、それは消えるA1

Dim clear As Boolean 

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Not IsEmpty(Range("B1").Value) Then 
     clear = True 
     Range("A1").Value = Range("B1").Value 
    ElseIf clear = true Then 
     clear = False 
     Range("A1").Value = "" 
    End If 
End Sub 
+0

@ScottCraner @ScottCranerは、最初のものがtrueの場合はtrueを、それ以外の場合はtrueへ、2番目のものがtrueの場合はfalseに設定し、最初のものがtrueの場合にのみ実行します。 clearはWorksheet_Change関数の外で宣言されます。 –

+0

Nevermind didあなたがグローバル変数としてそれを置くことに気付かない。 –

関連する問題