Подходящая функция цикла Excel VBA? - PullRequest
0 голосов
/ 06 сентября 2018

извинения, так как я совсем новичок в этом. У меня есть этот макрос VBA:

 Sub ScoreTest()
Dim score As Integer, result As String
score = Range("D2").Value

If score >= Range("E2").Value Then
    result = "pass"
Else
    result = "fail"
End If
Range("F2").Value = result

End Sub

Конечно, это работает только для строки 2. Я отредактировал макрос так, чтобы он применялся к строкам 2 - 16, но это была только моя копия, так что это выглядело так:

Sub ScoreTest()
Dim score As Integer, result As String
score = Range("D2").Value

If score >= Range("E2").Value Then
    result = "achieved"
Else
    result = "failed"
End If
Range("F2").Value = result

score = Range("D3").Value

If score >= Range("E3").Value Then
    result = "achieved"
Else
    result = "failed"
End If
Range("F3").Value = result

score = Range("D4").Value

If score >= Range("E4").Value Then
    result = "achieved"
Else
    result = "failed"
End If
Range("F4").Value = result

...

End Sub

Какую функцию цикла я бы использовал в этом сценарии вместо копирования + вставки макроса для каждой строки?

1 Ответ

0 голосов
/ 06 сентября 2018

Что-то вроде

Option Explicit
Sub ScoreTest()
    Dim score As Long, result As String, i As Long

    With ThisWorkbook.Worksheets("Sheet1")
        For i = 2 To 16
            score = .Cells(i, "D")

            If score >= .Cells(i, "E") Then
                result = "achieved"
            Else
                result = "failed"
            End If
            .Cells(i, "F") = result
        Next
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...