2016-05-13 86 views
0

我剛開始VBA編碼和我在這裏打:如何定義範圍內可變

對於一個小區這個程序的工作原理:

Dim score As Integer, result As String 

score = Range("A1").Value 

If score >= 60 Then 

    result = "pass" 

Else 
    result = "fail" 

End If 

Range("B1").Value = result 

以及如何對單元格列?循環可以爲此工作? 我的代碼使用循環 - 但如何定義範圍內的變量?

Dim score As Integer, result As String, I As Integer 

score = Range("AI").Value 

For I = 1 To 6 

If score >= 60 Then 

result = "pass" 

Else 

    result = "fail" 

End If 
Range("BI").Value = result 

Next I 

在此先感謝!

回答

3

差不多了,你只需要使用字符串連接(&

Dim score As Integer, result As String, I As Integer 

'score = Range("AI").Value 

For I = 1 To 6 

    score = Range("A" & I).Value '// Needs to be inside the loop to update. 

    If score >= 60 Then 
     result = "pass" 
    Else 
     result = "fail" 
    End If 

    Range("B" & I).Value = result 

Next I 

這也可以寫成:

For i = 1 To 6 
    Range("B" & i).Value = IIf(Range("A" & i).Value >= 60, "pass", "fail") 
Next 
+0

耶! :D我現在明白了;我的代碼{私人小組CommandButton1_Click() 昏暗得分作爲整數,導致作爲字符串,確定作爲整數 對於OK = 1至10 得分=細胞(確定,1)。價值 如果得分> = 60然後 結果= 「通過」 否則 結果=「失敗」 結束如果 細胞(確定,2)。價值=導致 接着確定 結束子} – mob

2

你也可以去一個 「公式」 的方法:

Range("B1:B6").FormulaR1C1 = "=If(RC1 >= 60, ""pass"", ""fail"")" 

因此保持該檢查對列中任何可能的後續更改保持活動狀態一個單元格的值

,或者你應該想只有「靜態」值:

With Range("B1:B100") 
    .FormulaR1C1 = "=If(RC1 >= 60, ""pass"", ""fail"")" 
    .Value = .Value 
End With 
+0

它是相同的,因爲值檢查是在列「A」,它是柱1 – user3598756