-3

例如,我有一张包含 100 多人姓名的表格。在 HI 栏中有他们的出生日期。如果我想知道今天是哪个朋友的生日,代码会是什么样子?当然,宏需要遍历该列并查看今天的日期是否与 H 列中的日期匹配。我对 VBA/宏的经验很少。请并感谢您的帮助。

4

2 回答 2

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
于 2012-11-13T00:47:59.140 回答
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
于 2012-11-13T02:37:11.630 回答