Если оператор не работает должным образом в пределах L oop в Excel VBA - PullRequest
1 голос
/ 27 апреля 2020

Я пытаюсь создать оператор IF NOT в пределах al oop. Чтобы сделать это так, чтобы в этой ячейке не было значений, которые я ищу, формула вставляется в другой столбец той же строки. Сейчас оператор If not игнорируется, и все ячейки получают формулу.

Sub Example()
Dim Sales As Range
Dim cell As Range

lr = ActiveSheet.Cells(Rows.Count, "G").End(xlUp).Row

Set Sales= Workbooks("Sales.xlsm").Sheets("Sales").Range("B2:B" & lr)

 For Each cell In Sales



    If Not cell.Value = "Monday" Or cell.Value = "Tuesday" Then

    cell.Offset(0, 12).FormulaR1C1 = "=RC[-3]*RC[-1]"



    End If

Next

End Sub

Ответы [ 2 ]

0 голосов
/ 27 апреля 2020

Если ваша цель - определить, может ли одно строковое значение быть одним из нескольких строковых значений, я бы использовал метод Instr.

Dim Days as string
Days = "Monday,Tuesday"
If Instr(Days, cell.Value)=0 then
0 голосов
/ 27 апреля 2020

Попробуйте самый простой метод:

If (Cell.Value2 <> "Monday") Then

Совет: вам не нужно ИЛИ для второго условия, потому что оно всегда соответствует первому условию.

Другими словами, (Cell.Value2 <> «Monday») сделает 2-е условие устаревшим, потому что оно всегда будет истинным, если день не понедельник.

Редактировать:

Я думаю, что @BigBen верен, вы хотите исключить понедельники и вторники, поэтому:

If cell.Value <> "Monday" And cell.Value <> "Tuesday" Then
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...