2012-08-31 3 views
2

저는 최근에 Excel에서 VBA를 시작하기 시작했으며 온라인에서 다양한 자습서를 진행했지만 if 문으로 갈 때 약간의 문제가 발생했습니다. 내가 온라인에서 얻은 지식과 VB 지식에서 나는 다음 코드를 생각해 냈다.VBA My if 문이 작동하지 않습니다

Private Sub CommandButton1_Click() 
    Dim mynum As Integer, checker As String 
    mynum = Range("A1:A10").value 

    If mynum > 0 Then 
     checker = "check" 
    Else 
     checker = "missing" 
    End If 

    Range("B1:B10").value = checker 
End Sub 

아이디어는 열 A 0 이상의 숫자가있는 경우, B 열에서 인접 셀이 선택되어 있다는 것이다 그러나 그것으로 0 또는 인접 셀이없는 말한다 저하 (즉, 어떠한 의미가있는 경우) 프로그래머 만약 이 시점에서 기본을 배우는 중이므로 실제 지점이 없습니다.

이제 내 문제는 ... 기본적으로 디버깅을 시도 할 때 형식 불일치 오류가 발생하고 이것이 왜 그렇게되는지 실제로 알 수 없습니다. 나는 여러 셀보다는 하나의 셀로 범위를 설정할 때 작동한다는 것을 알고 있습니다. 그래서 가장 좋은 추측은 그 셀과 관련이 있다는 것입니다. 나는 그것으로 들여다 보았지만, 다시 이것이 단지 작동할만한 결과를 얻는다. 나는 그것을 어딘가에 잘못 읽었을 것임에 틀림없지 만, 도움을 얻었을 것이다. :)

답변

7

당신이하려고하는 것에 대해 이와 같은 범위 값을 할당/점검 할 수 없습니다. 한 가지 방법은 범위를 반복하는 것입니다. BTW

편집

Private Sub CommandButton1_Click() 
    Dim Rng As Range, aCell As Range 

    Set Rng = Range("A1:A10") 

    For Each aCell In Rng 
     If aCell.Value > 0 Then 
      aCell.Offset(, 1).Value = "check" 
     Else 
      aCell.Offset(, 1).Value = "missing" 
     End If 
    Next 
End Sub 

를 들어,이에 대한 VBA 필요하지 않습니다. 당신이 비 VBA 솔루션 열려 있으면 단순히 셀 B1이 공식을 넣고는

=IF(A1>1,"Check","Missing") 
+0

안녕 싯다 르트 나라 얀은 빠른 응답 주셔서 감사합니다 아래로 복사, 나는 그것이뿐만 아니라 예를 들어 주셔서 감사 루프에 대해 생각해야 그것은 더 의미가 지금 :) – Zoe

관련 문제