2012-10-02 2 views
1

저는 실제로이 문제에 대한 답을 찾는 데 많은 어려움을 겪고 있습니다. 두 열에 동일한 워크 시트에 여러 개의 숫자가 포함되어 있습니다. 단순히 "열 1의 값> 열 2의 값이면 열의 각 행에 대해 이렇게 말하십시오."라는 코드가 필요합니다. 시도했습니다Excel VBA의 두 열 비교 (보다 크거나 같음)

If sheet.range("B2:B35").Value > sheet.range("C2:C35").Value Then 
'do something 
End If 

하지만 분명히 그렇게 작동하지 않습니다.

+1

나는 차례로 각 요소 쌍을 확인해야한다고 생각합니다. 그러나 Excel, 훨씬 적은 VBA를 만지지는 마십시오. –

+0

예, 행 2 - 35에있는 모든 것을 나타내는 단일 값이 없기 때문에 –

답변

6

각 행을 다른 행과 독립적으로 검사하려면 루프를 고려해야합니다. 따라서 셀을 해결하기 위해 여러 가지 방법이 있습니다, Sheet.Range("B" & i).Value는 또한

Sheet.Range("B" & i)으로 동일한 결과를 반환 의미가 암시 적으로

For i = 2 to 35 
    If Sheet.Range("B" & i).Value > Sheet.Range("C" & i).Value 
     'Do Something for Row i 
    End If 
Next 

Value 생략 할 수 있습니다

생각은 뭔가처럼 필요에 따라

Range() 'Can be used to address multiple cells at the same time over a range 
      ' or used to address a single cell as is done here 

    Cells() 'Can be used to address a single Cell by calling Cells("B" & i) as is 
      ' done above, or can reference the row and column numerically like 
      ' Cells(2, i) 

그리고 당신과 같은 특정 워크 시트을 이동하고자하는 경우 위의 방법 중 하나가 Offset()과 함께 사용할 수 있습니다 :

Cells(2, 1).Offset(0, i) 'Addresses the Cell offset from "B1" by 0 columns and 
          ' i rows. 
나는 개인적으로 이러한 경우 Cells(2, i)을 사용하는 경향이

, 하지만 나는 단지 Range을 사용하여 예제 코드 스 니펫에서 바로 빌려 왔습니다.

+0

그리고 실제로 그것은 그렇게 간단했습니다. 한숨. 고맙습니다. – Kurt

+0

더 명확한 – enderland

+0

+1이라면'Sheet.Cells (i, 2) .Value'와'Sheet.Cells (i, 3)'를 사용할 수도 있지만 양측에'.Value'를 명시 적으로 사용하는 것이 좋습니다. '> '또는 양측 모두에 함축되어있다. 현재 LHS에 명시 적으로 표시되어 있으며 RHS – barrowc

관련 문제