|
▼にしもり さん:
こんばんは。ponponです。
懲りずに回答しています。
for eachを使ったり、findやmatchを使った方が、早いと思いますが、
ちょっと考える時間がなかったので、普通に回してます。
何とかこれでいけると思います。
二つのブックを開いて実行してください。
Sub test()
Dim SH1 As Worksheet
Dim SH2 As Worksheet
Dim myRow1 As Long
Dim myRow2 As Long
Dim myVal As String
Dim Yasumi As String
Dim Hiduke As Integer
Set SH1 = Workbooks("勤務予定表.xls").Worksheets("sheet1")
Set SH2 = Workbooks("変更内容.xls").Worksheets("sheet1")
myRow1 = SH1.Range("A65536").End(xlUp).Row
myRow2 = SH2.Range("B65536").End(xlUp).Row
For i = 5 To myRow1
For j = 2 To myRow2
If SH1.Cells(i, 1).Value = SH2.Cells(j, 2).Value Then
myVal = SH2.Cells(j, 2).Offset(0, 2)
If IsEmpty(myVal) Then Exit Sub
Yasumi = Right(myVal, Len(myVal) - InStr(myVal, "_"))
Hiduke = Val(Left(myVal, InStr(myVal, "_") - 2))
SH1.Cells(i, 1).Offset(0, Hiduke + 6).Value = Yasumi
End If
Next j
Next i
End Sub
|
|