|
▼T-K さん:
無理矢理、配列を使ってみました。
たぶん、直接セルに数式を埋め込んで、
計算後に値に変換のほうがよいと思います。
色付けは、条件付き書式で対応してください。
Sub test()
Dim tbl As Range
Dim v
Dim j As Long, k As Long
Dim mX, mY
Set tbl = Sheets("Sheet1").Range("A1").CurrentRegion
With Sheets("Sheet2").Range("A1").CurrentRegion
v = .Value
For j = 2 To UBound(v, 1)
For k = 3 To UBound(v, 2)
mX = Application.Match(CLng(DateValue(v(1, k))), tbl.Rows(1), 0)
mY = Application.Match(v(j, 1), tbl.Columns(1), 0)
If IsNumeric(mX) * IsNumeric(mY) Then
v(j, k) = Application.Index(tbl, mY, mX)
End If
Next
Next
.Value = v
End With
End Sub
|
|