Если logi c, написать один из трех текстов в ячейку - PullRequest
0 голосов
/ 25 января 2020

Я хотел бы написать текст a, b или c в E3 в зависимости от результата.

Код вылетает в Excel.

Sub calculate()
Range("B2").Activate
Do While ActiveCell.Value <> ""
    If ActiveCell.Value + ActiveCell.Offset(0, 1) + ActiveCell.Offset(0, 2) = 3 Then
        ActiveCell.Offset(0, 3).Value = "Text A"
    ElseIf ActiveCell.Value + ActiveCell.Offset(0, 1) + ActiveCell.Offset(0, 2) = 2 Then
        ActiveCell.Offset(0, 3).Value = "Text B"
    ElseIf ActiveCell.Value + ActiveCell.Offset(0, 1) + ActiveCell.Offset(0, 2) < 2 Then
        ActiveCell.Offset(0, 3).Value = "Text C"
    End If
Loop
End Sub

1 Ответ

1 голос
/ 25 января 2020

Используйте некоторые переменные! Может быть, что-то вроде этого:

Sub calculate()
    Dim c As Range, v
    Set c = ActiveSheet.Range("B2") 

    Do While c.Value <> ""
        v = c.Value + c.Offset(0, 1).Value + c.Offset(0, 2).Value
        If v = 3 Then
            c.Offset(0, 3).Value = "Text A"
        ElseIf v = 2 Then
            c.Offset(0, 3).Value = "Text B"
        ElseIf v < 2 Then
            c.Offset(0, 3).Value = "Text C"
        End If
        Set c = c.offset(1, 0)
    Loop

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...