Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9847 / 13644 ツリー ←次へ | 前へ→

【25147】IF文について うっち 05/5/22(日) 15:09 質問[未読]
【25148】Re:IF文について Hirofumi 05/5/22(日) 15:57 回答[未読]
【25150】Re:IF文について うっち 05/5/22(日) 16:49 お礼[未読]
【25149】Re:IF文について nossori 05/5/22(日) 16:47 回答[未読]

【25147】IF文について
質問  うっち  - 05/5/22(日) 15:09 -

引用なし
パスワード
   よろしくお願いします。
for nextでB列の管理番号をチェックし、もし管理番号の入力があって、N列もしくはO列どちらにも値の無い場合、”値がない”と言うメッセージを表示させたいのですが、下の通りだとB列に値がなく、N列もしくはO列にも値がないとメッセージが出てしまいます。B、N、O列とも値の無い場合はスルーしたいのですが、どこを直せば良いでしょうか?
Sub TEST()
Dim a As Integer, i As Integer, j As Integer
Dim mybtn As Integer
a = Cells(65536, 2).End(xlUp).Row

For i = 8 To a
Cells(i, 2).Select
If ActiveCell.Value <> "" And ActiveCell.Offset(, 12) = "" Or ActiveCell.Offset(, 13).Value = "" Then
mybtn = MsgBox((i & "行目にCOSTが入っていません!"), 1)
If mybtn = 2 Then
 Exit Sub
 Else
 End If

Else
End If

Next

End Sub

【25148】Re:IF文について
回答  Hirofumi  - 05/5/22(日) 15:57 -

引用なし
パスワード
   多分?

Sub TEST()

  Dim i As Long
  
  With ActiveSheet
    For i = 8 To .Cells(65536, 2).End(xlUp).Row
      With .Cells(i, 2)
        If .Value <> "" Then
          If .Offset(, 12) = "" And .Offset(, 13).Value = "" Then
            If MsgBox((i & "行目にCOSTが入っていません!"), _
                vbOKCancel) = vbCancel Then
              Exit Sub
            End If
          End If
        End If
      End With
    Next i
  End With

End Sub

【25149】Re:IF文について
回答  nossori  - 05/5/22(日) 16:47 -

引用なし
パスワード
   ▼うっち さん:
こんにちは

If ActiveCell.Value <> "" And ActiveCell.Offset(, 12) = "" Or ActiveCell.Offset(, 13).Value = "" Then
の「Or」を「And」に変更するとできると思います。

【25150】Re:IF文について
お礼  うっち  - 05/5/22(日) 16:49 -

引用なし
パスワード
   ▼Hirofumi さん:
ありがとうございました。IF文にIF文を重ねる書き方が分かって参考になりました。

>多分?
>
>Sub TEST()
>
>  Dim i As Long
>  
>  With ActiveSheet
>    For i = 8 To .Cells(65536, 2).End(xlUp).Row
>      With .Cells(i, 2)
>        If .Value <> "" Then
>          If .Offset(, 12) = "" And .Offset(, 13).Value = "" Then
>            If MsgBox((i & "行目にCOSTが入っていません!"), _
>                vbOKCancel) = vbCancel Then
>              Exit Sub
>            End If
>          End If
>        End If
>      End With
>    Next i
>  End With
>
>End Sub

9847 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free