次の2つのコードがあります。もう1つは、最初のコードを呼び出すために呼び出し関数を使用しようとしています。Excel VBA呼び出し関数とループ
私はRange( "e42:e48")のスコアがいくつかあります。
ただし、2番目のコードはスコアリストを通過せず、次のスコアがクリックされてコードが実行されるまで、各スコアを一度にチェックするだけです。
お手数をおかけしますようお願い申し上げます。ありがとう。新
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'を実行します。その場合、いくつかのオプションがありますが、最も簡単なのは、おそらく2番目のSub – FernAndr