2017-10-03 9 views
0

B1セルを更新します。私はすでにこれを作った:VBAでセルを更新

Sub test() 
x = 1 
y = 1 

    Do While Cells(y, 1).Value <> "" 
     If Cells(y, 1) > 0 Then Cells(y, 2).Value = Cells(x, 3).Value 
     x = x + 1 
     y = y + 1 
     End If 
Loop 
End Sub 

A1セルは空ですので、A1の番号を入力するときはこのフォームを使います。 A1の番号を入力した後、c1セルはVlookup機能を使用して別の番号 を取得します。

このC1番号は何のために変換したいのですか(機能なし)だから私はB1のC1値をコピーします A1を入力してC1を入力した後でB1を更新する必要があります。

現時点では、私がマクロを使用し始めた後、A1を入力するとマクロとしてしか使用できず、C1が表示されます。私がA1とC1のために入力するときに私が望むのは、C1が自動でC1の値を表示するためにB1よりも上に来るということです。 ありがとう!

答えて

0

あなたが探しているのはWorksheet_Change eventです。

は、Visual Basic Editorで、適切なシートをダブルクリックする必要があります、開始するには、そのシートのコードモジュールを開きます

enter image description here

。次に、/それにこのコードをコピー&ペースト:あなたが値を設定する.Offsetプロパティを使用することができ

Private Sub Worksheet_Change(ByVal Target As Range) 

    Dim rCheck As Range 
    Dim ChangedCell As Range 

    Set rCheck = Intersect(Target, Me.Columns("A")) 

    Application.EnableEvents = False 

    If Not rCheck Is Nothing Then 
     For Each ChangedCell In rCheck.Cells 
      If ChangedCell.Value > 0 Then Me.Cells(ChangedCell.Row, "B").Value = Me.Cells(ChangedCell.Row, "C").Value 
     Next ChangedCell 
    End If 

    Application.EnableEvents = True 

End Sub 
+0

注意(例えば、 'ChangedCell.Offset(、1).Valueの= ChangedCell.Offset(2).Valueの')、私は読み込みとデバッグが難しいOffsetを使う代わりに、明示的にするほうが好きです。 – tigeravatar

+0

ありがとうございます!今、私はワークブックに取り組むことができるように働いています。再度、感謝します – Istvan

関連する問題