0

これらのヘッダーで設定されたテーブルがあります。

Task ID | Description | Date completed | Time completed

タスク ID がセル A3、説明 B3、完了日 C3、および完了時間 D3 になるようにテーブルが設定されているとします。セル A1 に、検索するタスク ID を入力します。

私がしたいことは、マクロが実行されると、セル A1 に入力されたタスク ID がテーブルで見つかり、(マクロ実行時の) 日付と時刻が列 C の対応するセルに入力されることです。とD.

ありがとう!

4

3 に答える 3

0

Worksheet_Changeとの組み合わせで実現できますVlookup。このコードをシート コード セクションに入力してください。

値がA1マクロに入力されるとトリガーされ、テーブルで値が見つかった場合は、Vlookup を使用して対応する値 (説明) を取得します。また、現在の日付と時刻も入力します。

Private Sub Worksheet_Change(ByVal Target As Range)

        On Error Resume Next
        Application.EnableEvents = False

        If Not Intersect(Target, Range("A1")) Is Nothing Then


            Dim lastRow As Long, tblRng As Range
            lastRow = Range("A" & Rows.Count).End(xlUp).Row
            If lastRow <= 3 Then lastRow = 3

            Set tblRng = Range("A3:D" & lastRow)
            dt = Application.VLookup(Target, tblRng, 1, 0)

            If Not IsError(dt) Then
                With Target
                    .Offset(0, 1).Value = Application.VLookup(Target, tblRng, 2, 0)
                    .Offset(0, 2).Value = Date
                    .Offset(0, 2).NumberFormat = "mm/dd/yyyy"
                    ' if you want  date from tbl use Application.VLookup(Target, tblRng, 3, 0)
                    .Offset(0, 3).Value = TimeValue(Now())
                    .Offset(0, 3).NumberFormat = "hh:mm am/pm"
                    ' if you want  date from tbl use Application.VLookup(Target, tblRng, 4, 0)
                End With

            Else
                With Target
                    .Offset(0, 1).Value = vbNullString
                    .Offset(0, 2).Value = vbNullString
                    .Offset(0, 3).Value = vbNullString
                End With
            End If
        End If
        Application.EnableEvents = True
    End Sub

ここに画像の説明を入力

于 2013-06-09T05:24:11.340 に答える