[[20230321193023]] 『3行入力して、9行空ける、印刷後繰り返しをする方』(モヒー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『3行入力して、9行空ける、印刷後繰り返しをする方法を教えてください』(モヒー)

よろしくお願いします。

いろいろ検索をして動きそうなものができましたが
印刷後にsheet6に繰り返し入力することができません
sheet6のA20から入力が始まってしまいます

sheet6へ繰り返し入力するにはどのようにしたらよいのでしょうか
よろしくお願いします

コピー元 sheet1
    O    P    Q
15  0301   AAA   1
16  0302   BBB   2
17  0303   CCC   3
18  0304   DDD   4
19  0305   EEE   5
20  0306   FFF   6
21  0307   GGG   7

コピー先 sheet6(A1〜B5、A9〜B16までは文が入力されています)
   A    B

6  日付   0301
7  NO    AAA
8  数量   1

17  日付   0302
18  NO    BBB
19  数量   2

コピー先を印刷して、さらにこのように入力したい
この作業をコピー元の分繰り返したい

   A    B

6  日付   0303
7  NO    CCC
8  数量   3

17  日付   0304
18  NO    DDD
19  数量   4

方々検索して試行錯誤したもの

Sub 注意書きの入力と印刷()

Dim i As Long 'Sheet1の転記開始行
Dim k As Long 'Sheet6の転記開始行
Dim LastRow As Long '最終行の取得

LastRow = Sheet1.Cells(Rows.Count, "O").End(xlUp).Row

k = 6 'Sheet6の転記開始行

    For i = 15 To LastRow

        Sheet6.Cells(k, 2).Value = Sheet1.Cells(i, 15).Value
        k = k + 1
        Sheet6.Cells(k, 2).Value = Sheet1.Cells(i, 16).Value
        k = k + 1
        Sheet6.Cells(k, 2).Value = Sheet1.Cells(i, 17).Value
        i = i + 1
        k = k + 9
        Sheet6.Cells(k, 2).Value = Sheet1.Cells(i, 15).Value
        k = k + 1
        Sheet6.Cells(k, 2).Value = Sheet1.Cells(i, 16).Value
        k = k + 1
        Sheet6.Cells(k, 2).Value = Sheet1.Cells(i, 17).Value

        Sheets("A4").PrintOut Preview:=True

    Next i

End Sub

< 使用 Excel:Excel2019、使用 OS:Windows10 >


 Sub test()
     Dim ws1 As Worksheet, ws6 As Worksheet, i As Long
     Set ws1 = Worksheets("Sheet1")
     Set ws6 = Worksheets("Sheet6")
     For i = 15 To ws1.Cells(Rows.Count, "A").End(xlUp).Row Step 2
         ws6.Range("B6:B12") = ""
         ws1.Cells(i, "A").Resize(, 3).Copy
         ws6.Range("B6").PasteSpecial xlPasteValues, Transpose:=True
         ws1.Cells(i + 1, "A").Resize(, 3).Copy
         ws6.Range("B10").PasteSpecial xlPasteValues, Transpose:=True
     Next
 End Sub
(フォーキー) 2023/03/21(火) 20:14:09

 すみません、コピー先のセル番地読み間違えてました。
 >ws6.Range("B6:B12") = ""
 を
 ws6.Range("B6:B19") = ""
 に
 (B9からB16に文字が入力されているなら、
 ws6.Range("B6:B8") = ""
 ws6.Range("B17:B19") = ""
 と2回に分けてください)

 >ws6.Range("B10").PasteSpecial xlPasteValues, Transpose:=True
 を
 ws6.Range("B17").PasteSpecial xlPasteValues, Transpose:=True
 に変えてください。
(フォーキー) 2023/03/21(火) 20:22:35

フォーキーさん

ありがとうございます
やりたいことが実現しました

ステップ実行をしてどのような動きをするのか学習します
ありがとうございました

(モヒー) 2023/03/21(火) 21:10:38


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.