L oop не будет удалять или удалять содержимое ячейки - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь удалить информацию из ячейки, используя следующие циклы, где она равна определенному значению. L oop вроде работает нормально, но ничего не выполняет. Я новичок в VBA, поэтому, честно говоря, не знаю, что делаю не так. Мне в основном нужно от l oop до go через столбец и очистить любую ячейку, которая равна «Отклонить до состояния» ИЛИ не равно «ЖЕНСКИЙ» или «МУЖСКОЙ». Если кто-то может дать мне совет, я был бы признателен, спасибо.

Dim g As Integer
g = 2

'Do Until IsEmpty(Range("AI" & g).Value) = True

'If Worksheets(1).Range("AI" & g).Value <> "FEMALE" Or "Male" Then
'    Worksheets(1).Range("AI" & g).Value = ""
'   End If
'g = g + 1
'Loop

Do Until IsEmpty(Range("AI" & g).Value) = True

If Cells("AI" & g).Value <> "FEMALE" Or "Male" Then
    Cells("AI" & g).Formula = ""
    End If
g = g + 1
Loop

'Do Until IsEmpty(Range("AI" & g).Value) = True

'If Worksheets(1).Range("AI" & g).Value = "DECLINE TO STATE" Then
'    Worksheets(1).Range("AI" & g).Formula = ""
'    End If
'g = g + 1
'Loop

1 Ответ

0 голосов
/ 09 июля 2020

Несколько проблем:

  1. Вам нужно использовать And, а не Or.

  2. В VBA левый сторона условия (Cells("AI" & g).Value) должна быть повторена.

  3. Если ячейка содержит значение «Отклонить до состояния», то это уже ни "ЖЕНСКИЙ "ни" мужской ". Тогда необходим только logi c.

If Cells("AI" & g).Value <> "FEMALE" And Cells("AI" & g).Value <> "Male" Then

Боковое примечание: вы, вероятно, могли бы использовать здесь Range.AutoFilter и полностью избежать зацикливания.

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