|
▼どぢょりん さん:
>実行してみましたが、エラーがでてしまします。
>
> .CurrentRegion.Offset(10).Copy .Cells
>
>この部分で、「オブジェクトが必要です」と出ています。
>よろしければ、対応を教えてください。
> '印刷が終わったら WS2のデータを上方向シフト
> With WS2.Range("A1")
> .CurrentRegion.Offset(10).Copy .Cells
> End With
の部分は
WS2 のデータが(たとえばですが)
当初、以下のようだったとき、
[Sheet2]
A B C D E F
1 1 11111-11 商品A 10,000 5 A社
2 2 22222-22 商品B 20,000 3 B社
3 3 33333-33 商品C 30,000 2 C社
4 4 2323-444 商品C 190,000 11 C社・D社
5 5 44444-44 商品D 50,000 8 C社・D社
6 6 2323-555 商品D 210,000 12 D社
7 7 5555-666 商品E 70,000 6 E社
8 8 3434-900 商品F 90,000 7 F社
9 9 2345-987 商品G 110,000 8 G社
10 10 1233-987 商品X 130,000 9 A社
11 11 2323-777 商品Y 150,000 10 B社
12 12 3434-999 商品Z 170,000 11 C社
Sheet3には このSheet2の「1行目〜10行目を参照する式」がセットして
ありますので、プログラムを実行してSheet3の該当する仕入れ先リストの
範囲の該当する仕入れ先に○を描画して印刷する
という処理をしたあとの「Sheet2のつぎの範囲を1行目にもってくる」
処理の部分です。
> With WS2.Range("A1")
> .CurrentRegion.Offset(10).Copy .Cells
> End With
この部分は上の実例範囲に即して書くと
WS2.Range("A1").CurrentRegion が → [A1:F12]の範囲のこと【12行あります】
よって、この範囲を下方へ10行Offsetした [A1:F12].Offset(10) とは
→ [A11:F22]の範囲のことです。ここも【12行あります】
この範囲を WS2.Range("A1").Cells つまり[A1]セルにコピーしています。
首尾よくいけば、上の例ですと Sheet2は
[Sheet2]
A B C D E F
1 11 2323-777 商品Y 150,000 10 B社
2 12 3434-999 商品Z 170,000 11 C社
3
4
5
6
7
8
9
10
11
12
:
:
------------------------
となるはずです。
元の11行目から【12行分】1行目にコピーしたのですから、
コピーした時点で、元の11〜12行目のデータは空白で上書きされ、無くなります。
それが、そうならなくて「オブジェクトが必要です」のエラーになる
というのですが、こちらではそういうエラーにはならないので、原因が
掴めません。
確認
第1回目の印刷までは 実行できるんですよね?
|
|