2012-08-31 101 views
2

我最近纔開始在excel中選擇VBA,並且我一直在線瀏覽各種教程,但是在if語句中遇到了一些問題。基於我在網上獲得的知識以及從我的VB知識中,我想出了以下代碼。VBA我的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 

的想法是,如果有一個數超過在列中的0,在列B中的相鄰小區被檢查,如果然而其0或降低相鄰小區說缺失(如果讓任何意義)那裏有沒有真正的意義,因爲我現在正在學習基本知識:)

現在我的問題...基本上,當我試圖調試這個,我得到類型不匹配的錯誤,我真的不明白爲什麼這樣。我知道,當我將範圍設置爲一個單元格而不是多個單元格時,它可以工作,所以我最好的猜測是它與此有關。我已經看過它,但即使得到的結果,只有備份,這應該工作。我一定有誤解它的地方,但幫助將不勝感激。 :)

回答

7

你不能指定/檢查範圍的值,就像你想要做的那樣。一種方法是循環你的範圍。例

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 

編輯

BTW,你不需要VBA這一點。如果你打開一個非VBA的解決方案,然後簡單地把這個公式在B1單元格並把它複製下來

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

嗨亞洲時報Siddharth謝謝大家的響應速度快,我應該有想過環路,感謝您的例子,以及它現在更有意義:) – Zoe