| 
    
     |  | ▼VBA初心者 さん: 
 こんにちわ。
 
 コードは読んでいないけど、全体的に、元ブックのSheet1以外のシートがどれなのかが
 ちょっとあいまいなコード記述になっていますね。全て、ちゃんと指定したほうがいいです。
 少なくとも、【元ブックのSheet2】は、ちゃんと(WS1のように)設定しておくべき。
 
 で、本題。
 質問文の中では「B6〜I33」、一方、アップされたコードの中では「B23:E23」。
 ここはどうなのでしょう?
 
 いずれにしても
 1.Range("B23:E23").Select  '◆テスト
 2.Selection.Copy      '◆テスト
 3.Sheets("Sheet1").Select  '◆テスト
 4.ActiveSheet.Paste     '◆テスト
 
 この1.は、今アクティブなブックのアクティブなシートをさしています。
 で、今、アクティブなブックは、新規に作成するために追加されたブックですよね。
 それと気になるのは、4. これは新規に作成するブックのSHeet1にペーストするんだけど
 そのペーストする場所は?たまたまブックを追加してから、セルを動かしてはいないので
 A1を想定しているのでしょうか?
 
 たとえば元ブックのSheet2が WS2 なら
 
 WS2.Range("B23:E23").Copy Sheets("SHeet1").range("A1") といったように記述しましょう。
 
 値コピーでいいならコピペじゃなく
 
 Sheets("Sheet1").range("A1:D23").value = WS2.Range("B23:E23").Value
 
 といった書き方のほうが素直かな?
 (コピー先のセルは想像でA1にしているけど、ここは実際のものに)
 
 ★何をどうしたいのかがわからないので、コードをざっと眺めた上での感想。
 勘違いしていたらスルー願います。
 
 |  |