ЕСЛИ оператор else не работает должным образом в коде VBA - PullRequest
0 голосов
/ 14 декабря 2018

Привет, пожалуйста, смотрите следующий код, я пытаюсь напечатать объем и размер пакета на основе объема, используя if else в vba.но мой код работает нормально только для части объема, но когда дело доходит до размера, он печатает первое условие во всем, то есть маленький, не печатая остальные.Можете ли вы помочь мне увидеть, где я иду не так.в таблице есть следующие столбцы со значениями в нескольких строках: имя пакета, дата, длина, ширина, высота, объем, размер.

отлично работает с объемом, но не с размером введите описание изображения здесь

Sub FillDown ()

Dim strFormulas(1 To 2) As Variant

With ThisWorkbook.Sheets("Sheet1")
    strFormulas(1) = "=PRODUCT(C2:E2)"

    If Range("F2").Value > 0 And Range("F2").Value < 1000000 Then
        strFormulas(2) = "Small"

    ElseIf Range("F2").Value > 1000000 And Range("F2").Value < 9000000 Then
        strFormulas(2) = "Medium"

    ElseIf Range("F2").Value > 9000000 Then
        strFormulas(2) = "Large"

    End If
    .Range("F2:G2").Formula = strFormulas
    .Range("F2:G44").FillDown
End With

End Sub

1 Ответ

0 голосов
/ 14 декабря 2018

Это, похоже, проблема X / Y .Вам не нужны одинаковые маленькие / средние / большие значения из строки 2 во всех G2: G44.

Sub smlFillDown()

    With ThisWorkbook.Sheets("Sheet1")
        .Range("F2:F44").Formula = "=PRODUCT(C2:E2)"
        .Range("G2:G44").Formula = "=lookup(f2, {0, 1000000, 9000000 }, {""small"", ""medium"", ""large""})"
    End With

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