漬物を手に入れたいと思っていました。先日、このロジックに従ってマクロをまとめました:
列Bのセルに特定のテキスト「brand1」があり、その行の値が列yの値「y」である場合、その行の列Wにテキスト文字列「sample1」を入力します。
先日は動作していましたが、何らかの理由で今日は動作しません。アイデアや考えはありますか?とにかくこのマクロを廃棄し、別のマクロを使用するという考えに完全に開かれています。
Sub PromoID()
Application.ScreenUpdating = False
Dim lastRow As Long
Dim cell As Range
lastRow = Range("B" & Rows.Count).End(xlUp).Row
For Each cell In Range("B2:B" & lastRow)
If InStr(1, cell.Value, "Brand1") <> 0 Then
InStr(1, cell.Offset(, 21).Value, "y") <> 0 Then
cell.Offset(, 23).Value = "sample1"
End If
End If
Next
Application.ScreenUpdating = True
End Sub
回答:
回答№1は0あなたは答えからそれほど遠くなかった。軽微なエラーのために目を離さないでください。
Sub PromoID()
Application.ScreenUpdating = False
Dim lastRow As Long
Dim cell As Range
lastRow = Range("B" & Rows.Count).End(xlUp).Row + 1
For Each cell In Range("B2:B" & lastRow)
If InStr(1, cell.Value, "Brand1") <> 0 Then
If InStr(1, cell.Offset(0, 19).Value, "y") <> 0 Then
cell.Offset(0, 21).Value = "sample1"
End If
End If
Next
Application.ScreenUpdating = True
End Sub
出力:
回答№2の場合は0
すべて大文字にするようにしてください。 Ucase()を使用
If ucase(InStr(1, cell.Value, "Brand1") ) <> 0 Then ucase(InStr(1, cell.Offset(, 21).Value, "y") ) <> 0 Then cell.Offset(, 23).Value = "sample1"