戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
BeforeシートからAfterシートに貼付け

    [196480] BeforeシートからAfterシートに貼付け-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ はみご -(2025/03/07(11:26))
    □U R L/
      お世話になります。
      
      Beforeシートの8列5行のデータ、5カ所分を
      Afterシートの8行目、14行目、20行目、26行目、32行目に
      貼り付けたいです。
      
      下記のコードでは、8行目に5回繰り返して貼り付けられるだけです。
      
      ご教授よろしくお願いいたします。
      
      
      Sub BeforeからAfterに配列を使用してコピーペースト()
      
      Dim A(5) As Variant, B As Long
      Dim gyo As Long
      
      Worksheets(1).Activate      'シートBeforeをアクティブにする
      
      A(1) = Range("D8:I12")
      A(2) = Range("D14:I18")
      A(3) = Range("D20:I24")
      A(4) = Range("D26:I30")
      A(5) = Range("D32:I36")
      
      Worksheets(2).Activate     'シートAfterをアクティブにする
      
      For B = 1 To 5
          
       Range(Cells(8, "B"), Cells(12, "G")) = A(B)      '数値を貼付け
          
          
      Next B
      
       
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [196481] Re[1]: BeforeシートからAfterシートに貼付け-

    記事引用/メール受信=OFF■

    □投稿者/ 匿名 -(2025/03/07(12:06))
    □U R L/

      >下記のコードでは、8行目に5回繰り返して貼り付けられるだけです。
      当然です。以下のコードにそのように書いてあるからです。
      >Range(Cells(8, "B"), Cells(12, "G")) = A(B)

      「Range(Cells(8, "B"), Cells(12, "G")) = A(B)」
      の「8」と「12」が何を意味しているか理解していますか。

      「8」と「12」を変数(gyo)にいれて、あなた様の言う「貼りつけ」する行を
      指定できるようにするのです。
      これは、アルゴリズムの問題なので、自分で考えて訓練した方がよいと思います。

      【考え方の参考】
      最初に貼り付ける行は、8行目から8+4行目
      次に貼り付ける行は、8+6行目から、(8+6)+4行目


      さて、ここで変数行「gyo」をどのようにしてあげれば(いくつずつ足せばよいか)を考えてみてください。




    [196482] Re[2]: BeforeシートからAfterシートに貼付け-

    記事引用/メール受信=OFF■

    □投稿者/ jindon -(2025/03/07(12:12))
    □U R L/

      こういうことですか?

      Range(Cells(8 + (B - 1) * 5, "B"), Cells(12 + (B - 1) * 5, "G")) = A(B)





    [196483] Re[3]: BeforeシートからAfterシートに貼付け-

    記事引用/メール受信=OFF■

    □投稿者/ jindon -(2025/03/07(12:15))
    □U R L/

      別案
      Sheets(1).[D8:I12,D14:I18,D20:I24,D26:I30,D32:I36].Copy
      Sheets(2).[b8].PasteSpecial xlPasteValues
      Application.Goto Sheets(2).[b8]




    [196484] Re[4]: BeforeシートからAfterシートに貼付け-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2025/03/07(12:28))
    □U R L/
      書き出し行を(Bに応じて)順次ずらさないとならないですよ。
      
       Range(Cells(8, "B"), Cells(12, "G")) = A(B)      '数値を貼付け
         ↓
        Cells(8 + 6 * (B - 1), "B").Resize(5, 6) = A(B) '5行x6列の数値を貼付け
            ↑
       ※貼り付けデータは5行分でも、書き出し位置は6行毎なので・・
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [196485] Re[5]: BeforeシートからAfterシートに貼付け-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ はみご -(2025/03/07(14:07))
    □U R L/
      indonさん、半平太さん、ありがとうございます。
      
      無事解決しました。
      
      Sub BeforeからAfterに配列を使用してコピーペースト()
      
      Dim A(5) As Variant, B As Long
      Dim gyo As Long
      
      Worksheets(1).Activate      'シートBeforeをアクティブにする
      
      A(1) = Range("D8:I12")
      A(2) = Range("D14:I18")
      A(3) = Range("D20:I24")
      A(4) = Range("D26:I30")
      A(5) = Range("D32:I36")
      
      Worksheets(2).Activate     'シートAfterをアクティブにする
      
      For B = 1 To 5
      
       For gyo = 8 to 36
          
         Cells(8 + 6 * (B - 1), "B").Resize(5, 6) = A(B)            '5行x6列の数値を貼付け
       
       Next gyo   
          
      Next B
      
       
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G