Используя Loop и If, ElseIf выдает сообщение: «Не могу найти» (что я ищу) » - PullRequest
0 голосов
/ 13 марта 2019

Пожалуйста, обратите внимание, что это один из первых написанных мною кодов VBA. То, что я написал, было смесью цикла и функции If. Код должен был пройти через столбец («AC»), если он находит пустую ячейку. Он смотрит на ту же строку, но в столбце D. В столбце D будет 350 возможных значений. Если значение столбца D равно «одному из 350 возможных значений», укажите «EU» ElseIf ... это продолжается для всех 350

Dim i As Long
i = 1
Do While Cells(i, "AC").Value <> ""
    If Cells(i, "D").Value = "OPP-1305-9066" Then
        Cells(i, "AC").Value = EU
    ElseIf Cells(i, "D").Value = "OPP-1305-0773" Then
        Cells(i, "AC").Value = EU
    ElseIf Cells(i, "D").Value = "another one of 350" Then
        Cells(i, "AC").Value = EU
    End If
    i = i + 1
Loop

1 Ответ

1 голос
/ 13 марта 2019

Не уверен, что ваши вопросы, но если ЕС не является переменной, вы пропустите скобки.Кроме того, вы выполняете цикл только тогда, когда столбец AC не пуст, поэтому, если AC2 пуст, но после ячейки AC4 больше данных, вы не проверяете его.

И самое главное, 350 операторов elseif, вау!:) Вам будет полезно узнать о массивах / коллекциях.

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