-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 に答える