我有以下2个代码,第二个是试图使用调用函数来调用第一个代码。Excel VBA调用函数和循环
我有几个分数范围(“e42:e48”)。
但是,第二个代码没有经过分数列表,它每次只检查每个分数,直到单击下一个分数并运行代码。
非常感谢您的帮助。谢谢。鑫
Sub IfElseIfTest_1()
Dim score As Integer
score = activecell.Value
If score >= 0 And score <= 35 Then
activecell(1, 2).Value = "F"
activecell(1, 2).HorizontalAlignment = xlCenter
activecell(1, 3).Value = "Terrible - needs attention"
ElseIf score >= 36 And score <= 50 Then
activecell(1, 2).Value = "D"
activecell(1, 2).HorizontalAlignment = xlCenter
activecell(1, 3).Value = "Needs attention"
ElseIf score >= 51 And score <= 65 Then
activecell(1, 2).Value = "C"
activecell(1, 2).HorizontalAlignment = xlCenter
activecell(1, 3).Value = "Not bad, could do better"
ElseIf score >= 66 And score <= 80 Then
activecell(1, 2).Value = "B"
activecell(1, 2).HorizontalAlignment = xlCenter
activecell(1, 3).Value = "Good score"
ElseIf score >= 81 And score <= 100 Then
activecell(1, 2).Value = "A"
activecell(1, 2).HorizontalAlignment = xlCenter
activecell(1, 3).Value = "Excellent score, well done!"
Else
MsgBox "Score not valid"
End If
End Sub
Sub IfElseIfTest_1_CallFunction()
Dim score As Range
' need to Dim cell as RANGE, IF AS STRING WILL NOT WORK.
For Each score In Range("e42:e48")
Call IfElseIfTest_1
Next score
End Sub
如果我正确理解你,你想为每个单元从E42到E48执行'IfElseIfTest_1'。在这种情况下,你有几个选项,但最简单的一个可能是在你的第二个Sub – FernAndr