2013-06-26 2 views
1

Excel의 단일 워크 시트에서 숫자를 입력 한 후에 다른 범위를 계산하고 싶습니다. 범위 A1, 예를 들어Excel 셀 내부에서 자동 계산 Visual Basic

: I 4

곱 할 C4 그래서 셀 A1에 1을 입력 한 경우 I 4 얻을, 2 그때 범위 B12에 등

8 얻을 : F14 2로 곱하고 싶습니다. 그래서 셀 B12에 1을 입력하면 2를 얻습니다. 2는 4 등을 얻습니다.

현재 전체 시트에 사용할 수있는 다음 VB가 있습니다.

Private Sub Worksheet_Change(ByVal Target As Range) 
If IsNumeric(Target.Value) Then 
    Application.EnableEvents = False 
    Target.Value = Target.Value/100 
    Application.EnableEvents = True 
End If 
End Sub 
+0

'대상'이 무엇인지 알기 위해 몇 가지 조건을 설정하면됩니다. 예제를 보여 드리겠습니다. –

답변

1

당신은 단지 확인 RangeTarget가 포함 된 내용을 볼 수있는 몇 가지 논리를 추가해야합니다. 일부 If...Then 문과 함께이 작업을 간단하게 수행 할 수 있습니다. 우선

가 나는 두 범위 변수 rng1하고 (각각 A1:C4B12:F14)를 언급 범위를 나타내는 rng2을 할당하고, I는 Intersect 함수를 사용하여 Target 그 범위 중 하나에 있는지 확인한다.

Private Sub Worksheet_Change(ByVal Target As Range) 
    Dim rng1 As Range 
    Dim rng2 As Range 
    Set rng1 = Range("A1:C4") 
    Set rng2 = Range("B12:F14") 
    Application.EnableEvents = False 
    If IsNumeric(Target.Value) Then 
     '## Determine what to do with the cell, based on what range it's in 
     If Not Intersect(Target, rng1) Is Nothing Then 
      Target.Value = Target.Value * 4 
     End If 
     If Not Intersect(Target, rng2) Is Nothing Then 
      Target.Value = Target.Value * 2 
     End If 
    End If 
    Application.EnableEvents = True 
End Sub 

이렇게하면 Target의 위치에 따라 두 가지 작업이 발생할 수 있습니다. Target이이 범위 중 하나가 아니면 아무 것도 발생하지 않습니다.

다른 계산을 고려하여 Range 변수와 If...Then 문을 추가로 추가 할 수 있습니다.