|
Worksheets("名簿")のB列に入力した値とWorksheets("データ")のA列の値を比較
して、Worksheets("名簿")にコピーし作業員名簿を作成しています。
Worksheets("名簿")
A B C D E F
1 雇入年月日
2 氏名 経験年数
3
4
5
6
結合セル
B列 B3.B4.B5.B6
E列 E3.E4 と E5.E6
以下同様のパターンで繰り返します。
Worksheets("データ")
A B C D E F
1 氏名 雇入年月日 経験年数
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Variant
Dim Ws As Variant
Set Ws = Worksheets("データ")
With Target
If .Column <> 2 Then Exit Sub
If .Row < 3 Then Exit Sub
If .Count > 1 Then Exit Sub
End With
With Application
.EnableEvents = False
x = .Match(Target.Value, Ws.Range("A:A"), 0)
End With
With Target
On Error Resume Next
.Resize(, 4).Value = Ws.Cells(x, 2).Resize(, 4).Value
.Offset(2, 3).Value = Ws.Cells(x, 6).Value
On Error GoTo 0
End With
Application.EnableEvents = True
End Sub
上記のマクロを実行した所、E5.E6結合セルに経験年数がコピーされません。
作業員名簿の表は業界統一様式の為変更も出来ず、苦慮しております。
宜しくお願いいたします。
|
|