|
今、職場で勤務表を作成しております。
VBAはまだ初心者です
エクセルシート1(勤務表)に
A B C・・ J K ・・・・ AN6
1
2
3
4
5 氏名 1 2 31
6 ああああ
いいい
ううう
このような勤務表があり、Sheet2(パターン)を休日パターンのデータ置き場としています。
入力を簡単にする為に、Sheet1セルj6の値が1ならSheet2のL7(休日)をコピペ
Sheet1セルj6の値が2ならSheet2のL8(半日)をコピペ
Sheet1セルj6の値が3ならSheet2のL9(有休)をコピペ
などのようにマクロを組みたいのですが、どのようにすれば良いのでしょうか?
一応 今書いたものは
If Range("j6") = 1 Then
Worksheets("パターン").Range("L7").Copy Range("j6")
ElseIf Range("j6") = 2 Then
Worksheets("パターン").Range("L8").Copy Range("j6")
ElseIf Range("j6") = 3 Then
Worksheets("パターン").Range("L9").Copy Range("j6")
ElseIf Range("j6") = 4 Then
Worksheets("パターン").Range("L10").Copy Range("j6")
ElseIf Range("j6") = 5 Then
Worksheets("パターン").Range("L11").Copy Range("j6")
ElseIf Range("j6") = 6 Then
Worksheets("パターン").Range("L12").Copy Range("j6")
ElseIf Range("j6") = 7 Then
Worksheets("パターン").Range("L13").Copy Range("j6")
ElseIf Range("j6") = 8 Then
Worksheets("パターン").Range("L14").Copy Range("j6")
ElseIf Range("j6") = 9 Then
Worksheets("パターン").Range("L15").Copy Range("j6")
ElseIf Range("j6") = 10 Then
Worksheets("パターン").Range("L16").Copy Range("j6")
End If
です。
1つのセルだけならこれで動くのですが、
K6 L6 ・・・とAN6 まで31日分入力し、
2人目を書いていた途中1回テストしてみたところ
「プロシージャが大きすぎます」とのコンパイルエラーになりました。
よろしくおねがいします。
|
|