2017-10-03 6 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을 입력 할 때 원하는 것은 B1이 자동으로 C1 값을 표시하는 것보다 큽니다. 감사합니다.

답변

0

당신이 찾고있는 것은 Worksheet_Change event입니다.

는 Visual Basic 편집기에서 해당 시트를 두 번 클릭해야합니다, 시작하려면 : 그 시트의 코드 모듈을 엽니 다

enter image description here

. 그런 다음/복사는이 코드를 붙여 넣기 : 당신이 (값을 설정 예를 들어`ChangedCell.Offset (1) .Value = ChangedCell.Offset (2) .Value를 .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

주 '), 나는 읽기와 디버그가 어려울 수있는 Offset을 사용하는 대신 명시 적으로 선호한다. – tigeravatar

+0

고맙습니다! 이제 통합 문서 작업을 계속할 수 있습니다. 다시 한 번 감사드립니다. – Istvan