2012-06-18 5 views
0

이 코드는 Excel 시트에서 값을 가져 와서 조건에 따라 결과를 표시합니다.VBA에서 연속 셀의 값 가져 오기

내 두 번째로 if 성명을 확인하고 싶습니다. ocell.value < sd11.

다음 5 개의 연속 값을 확인해야하는지 확인한 후 두 값이 같거나 같지 않은지 확인합니다. 그렇다면 결과를 보여주십시오.

다음 다섯 가지 연속 용어의 셀 값을 얻는 방법을 알려줄 사람이 있습니까? 내가 코드에서 언급했지만 그것이 작동하지 않는다고 생각한 것.

Sub DoStuff() 
    Dim oCell As Range 
    sd11 = Range("s11") 

    For Each oCell In Range("e4:e48") 
     If oCell.Value < sd13 Then 
      Range("R2").Value = "Rule 1s voilation" 
      End If 

     If oCell.Value < sd11 And oCell.Value = oCell.Value + 1 And oCell.Value = oCell.Value + 2 And oCell.Value = oCell.Value + 3 And oCell.Value = oCell.Value + 4 Then 
      Range("T5").Value = "Rule 4s voilation" 
      End If 

    Next 
End Sub 
+0

모든 "And"를 "Or"로 변경하십시오. 그러나 잠시 기다려주십시오. 어떻게 값이 자체 플러스 1과 같을 수 있습니까? 다음 5 개 연속 용어의 셀 값을 얻는 것은 무엇을 의미합니까? 오셀 (ocell)을 그 아래에있는 5 개의 셀 (row) 옆에서 확인하십시오. –

답변

3

:

If oCell.Value < sd11 And oCell.Value = oCell.Value + 1 And oCell.Value = oCell.Value + 2 And oCell.Value = oCell.Value + 3 And oCell.Value = oCell.Value + 4 Then 
     Range("T5").Value = "Rule 4s voilation" 
End If 

6의 oCell.Value 11의 SD11 값 주어, 너는 근본적으로 묻고있다.

If 6 < 11 And 6 = 7 And 6 = 8 And 6 = 9 And 6 = 10 Then 
    Range("T5").Value = "Rule 4s voilation" 
End If 
Range (Cell)의 Value 속성은 해당 셀과 연결된 값을 반환하기 때문에

이 반환됩니다.

그런 종류의 논리는 의미가 없으므로 VBA를 처음 사용한다는 사실을 감안할 때 VBA에서 Excel 개체로 작업하는 방법을 이해하는 방법과 오류가 있다고 생각합니다. oCell 바로 아래에있는 5 개의 행 중 어느 값이 oCell과 같은지 확인하십시오. 이렇게하려면 오프셋 기능을 사용하여 셀 자체를 참조하면됩니다.

' i used Or because I thought it might be more what you want. Change to AND if you require all 5 cells to be equal to oCell 
    If oCell.Value < sd11 Then 
     If oCell.Value = oCell.Offset(1).Value Or oCell.Value = oCell.Offset(2).Value Or oCell.Value = oCell.Offset(3).Value or oCell.Value = oCell.Offset(4).Value or oCell.Value = oCell.Offset(5).Value Then 
      Range("T5").Value = "Rule 4s voilation" 
     End If 
    End If 
+0

고마워. 그게 정확히 내가 원하는 .. .. :) – james

0

것은 과학적를 수행

if WorksheetFunction.AveDev(oCell.Resize(5)) = 0 then ... 코드의이 부분에서