|
こんにちは。かみちゃん です。
>>Worksheets("データ")の「経験年数」は、F列ですか?
>>質問文とシートレイアウトが違うような気がします。
>
>Worksheets("データ")は一列のデータとなっていますので、F列です。
すみません、聞き方を間違えました。
>>Worksheets("名簿")のB列に入力した値とWorksheets("データ")のA列の値を比較
>>
>>Worksheets("データ")
>> A B C D E F
>>1 氏名 雇入年月日 経験年数
>>2
>>3
「データ」シートの「氏名」がA列ではなく、B列のような気がしていまして、
.Resize(, 4).Value = Ws.Cells(x, 2).Resize(, 4).Value
というコードが「データ」シートのB列から横方向に4列分の値を設定しているような気がします。
特に、
.Resize(, 4).Value
は、「名簿」シートのB列から横方向に4列に値を設定しようとしていますが、
大丈夫ですか?
.Offset(, 1).Resize(, 4).Value
でもなさそうですし、
.Offset(, 1).Resize(, 3).Value = Ws.Cells(x, 3).Resize(, 3).Value
なのでしょうか?
>Worksheets("データ")のE2 → Worksheets("名簿")のE3.E4結合セルに
>Worksheets("データ")のF2 → Worksheets("名簿")のE5.E6結合セルに
>
>作業員名簿の 表は4行 で データは1行 でと言う事です。
これを解決するたには、
.Offset(2, 3).Value = Ws.Cells(x, 6).Value
というコードを
.Offset(, 3).MergeArea.Offset(1).Value = Ws.Cells(x, 6).Value
にしてみてください。
今回は、仕方なく結合セルを使いたいとのことですが、
結合セルとVBAの相性は悪いため、なるべくなら、使わないほうがいいかと思います。
|
|