2012-11-13 54 views
-3

例如,我有一張包含100多人姓名的工作表。在H列我有他們的出生日期。如果我想知道哪位朋友的生日是今天,代碼將會是什麼樣子?當然,宏需要遍歷該列,並查看今天的日期是否與列H中的日期匹配。我對VBA /宏很少有經驗。請謝謝你的幫助。如何在VBA /宏中爲生日通知創建代碼?

+7

條件格式可能是一個更好的辦法。 –

回答

0

如果某人的生日是今天的H列,那麼此代碼將在I列中顯示一條消息。 (假設G柱具有人的名字

Sub BirthdayAlert() 
Dim lastRow As Long 
Dim ws As Worksheet 
Dim varArray As Variant 
Dim lb As Long 
Dim i As Integer 

    Set ws = Sheets("Sheet1") 
    lastRow = ws.Range("H" & Rows.Count).End(xlUp).Row 
    varArray = Application.Transpose(ws.Range("H2:H" & lastRow).Value) 
    lb = LBound(varArray) 

    For i = LBound(varArray) To UBound(varArray) 
     If IsDate(varArray(i)) Then 
      If CDate(varArray(i)) = Date Then 
       varArray(i) = "Today is Your Birthday " & Range("G2").Offset(i).Value 
      Else 
       varArray(i) = "" 
      End If 
     End If 
    Next i 

    If UBound(varArray) > 0 Then 
     ws.Range("I2:I" & lastRow).Value = Application.Transpose(varArray) 
    End If 
End Sub 
0

下面是一些簡單的吧:

Sub birthdayThing() 
    Dim rng As Range 

    For Each rng In Range("H2:H100") 
     If CDate(rng) = Date Then rng.Offset(0, 1).Value = "Birthday" 
    Next rng 
End Sub