Excel VBA質問箱 IV

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

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


16401 / 76732 ←次へ | 前へ→

【65799】Re:複数シートから一覧表を作成
発言  かみちゃん E-MAIL  - 10/6/28(月) 17:09 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>以下のは未完成で、各シートからコピーではなく、一覧表のRange("H1:HP1")が
>コピーされてしまい、各シートに対応ができていません。

気づいた点のみ。

If WS2.Name <> "" Then

は、何をしようとしていますか?

私は、
If WS2.Name <> "まとめ" Then
というヒントを差し上げたと思います。

> 一覧表のRange("H1:HP1")がコピーされてしまい

Range("H1:HP1").Select
というコードにしているからです。
これでは、アクティブシートのH1:HP1になります。
マクロ実行開始時のアクティブシートが「一覧表」であれば、そのような事象になります。
これを回避するためには、

  Range("H1:HP1").Select
の前に、
  WS2.Acivate
として、アクティブシートを変更するか、

  Range("H1:HP1").Select
  Selection.Copy
  Sheets("一覧表").Select
  Cells(n, "A").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False



  WS2.Range("H1:HP1").Copy
  WS1.Cells(n, "A").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False

とします。

なお、この部分は、
 
  With WS2.Range("H1:HP1")
   WS1.Cells(n, "A").Resize(, .Columns.Count).Value = .Value
  End With

というように書き換えることもできます。

> 貼り付け先(一覧表)へ1行づつ下にずれて貼り付けることもまだ対応が
> できていません。

ここまでできたのですから、もう一歩です。
n = 2
という使い方ができているということですから、どのようにしたらいいかは、
もう少し自分で考えてみましょう。

自分で考えたコードが思うとおり動くようになったら、たぶんうれしいと思いますから。

0 hits

【65794】複数シートから一覧表を作成 10/6/28(月) 15:16 質問
【65795】Re:複数シートから一覧表を作成 かみちゃん 10/6/28(月) 15:32 発言
【65798】Re:複数シートから一覧表を作成 10/6/28(月) 16:41 質問
【65799】Re:複数シートから一覧表を作成 かみちゃん 10/6/28(月) 17:09 発言
【65800】Re:複数シートから一覧表を作成 10/6/28(月) 17:54 質問
【65801】Re:複数シートから一覧表を作成 かみちゃん 10/6/28(月) 18:28 発言
【65802】Re:複数シートから一覧表を作成 10/6/28(月) 18:33 お礼

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