|
>(日付はシリアル値です。)
CDblで、シリアル値に変換するか、Value2でセルのシリアル値を使えば、
エクセル関数のMatchが使えます。
MsgBox CDbl(CDate("2005/8/8"))
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim CLCOL As Long, NoHt As Variant, DtHt As Variant, i As Long
If Target.Row <> 1 Then Exit Sub
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
CLCOL = Target.Column
Application.EnableEvents = False
NoHt = Application.Match(Target.Value, Sheets("データ").Columns(1), 0)
If Not IsError(NoHt) Then
Sheets("月報").Cells(2, CLCOL).Value = Sheets("データ").Cells(NoHt, 2).Value
Sheets("月報").Cells(3, CLCOL).Value = Sheets("データ").Cells(NoHt, 6).Value
'↓ここの最終行は、適当に変えてください。
For i = 5 To Sheets("月報").Range("A65536").End(xlUp).Row
DtHt = Application.Match(Sheets("月報").Cells(i, 1).Value2, Sheets("データ").Rows(3), 0)
If Not IsError(DtHt) Then
Sheets("月報").Cells(i, CLCOL).Value = Sheets("データ").Cells(NoHt, DtHt).Value
Else
'Sheets("月報").Cells(i, CLCOL).Value = "無し"
End If
Next
Else
MsgBox "Noなし"
End If
Application.EnableEvents = True
End Sub
|
|