2016-05-20 26 views
0

G4からG1000までのすべての列をチェックし、G4だけでなくそれぞれのmsgboxを表示するループになるように、このVBAコードを更新するにはどうすればよいですか?セルをループする方法

Private Sub Workbook_Open() 
    Dim c1 As Range 
    Set c1 = ThisWorkbook.Sheets("Sheet1").Range("G4") 
    If IsDate(c1) Then 
    If Now >= c1 + 60 Then 
     MsgBox "The Date in Sheet 1 Cell B4 has been reached or passed." 
     End If 
    End If 
End Sub 
+0

'for ... next'ループ。範囲( "G"&x)を使用してください。ここで、xはループ内の変数です。 – gtwebb

答えて

0

r.offset使用(0を、-5)B列を参照します

Private Sub Workbook_Open() 
     Dim c1 As Range, r As Range 
     Set c1 = ThisWorkbook.Sheets("Sheet1").Range("G4:G100") 
     For Each r In c1 
      If IsDate(r.Value) Then 
       If Now >= r.Value + 60 Then 
        MsgBox "warning cell " & r.Address(0, 0) & " is expired: Value: " & r.offset(0,-5) 'r.offset(0,-5) will return the content on col 
       End If 
      End If 
     Next r 
    End Sub 

これが役に立ちます。

1

Private Sub Workbook_Open() 
    Dim c1 As Range, r As Range 
    Set c1 = ThisWorkbook.Sheets("Sheet1").Range("G4:G100") 
    For Each r In c1 
     If IsDate(r.Value) Then 
      If Now >= r.Value + 60 Then 
       MsgBox "warning cell " & r.Address(0, 0) & " is expired" 
      End If 
     End If 
    Next r 
End Sub 
+0

msgボックスには、G4の日付が期限切れの場合など、B4に書き込まれたデータが含まれていますか? –

+0

@ G.Rizk MsgBoxを変更することができます –

+0

G4が期限切れになったときにB4に書き込まれた値を意味する別の列の値を与える必要があります。 r.valueの代わりに何を書いて、新しい値を定義してはいけないのですか? –

関連する問題