Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


71370 / 76732 ←次へ | 前へ→

【9857】Re:BOOK間で値のコピーを繰り返しって?
回答  INA  - 03/12/19(金) 13:25 -

引用なし
パスワード
   >DO LOOPを使って"B列が空白になるまでBOOK1.xlsのA列に順番にコピーしなさい。"
>という感じの書式にしたいのですが、この場合はどのような書式になるのでしょうか?
DO 〜 LOOP だと行の指定に i をカウントさせる必要がありますので、
数値として、行をループ処理できるFor 〜 Next の方が、分かり易いですよ。

Dim i As Long
 i=1
Do 
 If Cells(i,2).value = "" then Exit Do '空白ならループを抜ける。        

 '処理
 i = i + 1
Loop

もしくは

Dim i As Long
 i=1
Do until Cells(i,2).value = ""
 '処理
 i = i + 1
Loop


>現状はこれでリストのファイルは新しいBOOKになって開かれるのですが、
>このあと”開いたBOOKのB列をもともと開いているBOOKのA列に順序良くコピーする”
>という事を行ないたいのですが、どの様にすれば良いのでしょうか?
開かれたブックは、アクティブになっているので、
そのときに対象ブックを変数に格納しておくと、
後々の指定が簡単になります。

Dim newWb As WorkBook

Set newWb = ActiveWorkBook

'これで新しいブックのB列が指定できます。
newWb.Worksheets("Sheet1").Cells(i,2).Copy

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

書式などが要らない場合、セルの値のみコピーするのであれば、
.Value プロパティで受け渡しできます。

ThisWorkBook.Worksheets("Sheet1").Cells(i,2).Value = _
newWb.Worksheets("Sheet1").Cells(i,2).Value


また列の一定の範囲をコピーするのであれば、
Endプロパティを使えば、ループしなくても出来ます。

Dim LastRow As Long

with newWb.Worksheets("Sheet1")
  
  LastRow = .Range("B65536").End(Xlup).Row '最終行の取得

  .Range(.Cells(1,2) , .Cells(LastRow,2)).Copy

0 hits

【9849】BOOK間で値のコピーを繰り返しって? みい 03/12/18(木) 20:02 質問
【9852】Re:BOOK間で値のコピーを繰り返しって? INA 03/12/19(金) 9:25 回答
【9854】Re:BOOK間で値のコピーを繰り返しって? みい 03/12/19(金) 11:44 お礼
【9857】Re:BOOK間で値のコピーを繰り返しって? INA 03/12/19(金) 13:25 回答
【9860】Re:BOOK間で値のコピーを繰り返しって? みい 03/12/19(金) 14:25 質問
【9865】Re:BOOK間で値のコピーを繰り返しって? Jaka 03/12/19(金) 15:26 回答
【9867】Re:BOOK間で値のコピーを繰り返しって? INA 03/12/19(金) 15:31 回答
【9869】Re:BOOK間で値のコピーを繰り返しって? みい 03/12/19(金) 15:38 お礼

71370 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free