データ量に応じてシートを追加したい | |
---|---|
[194614] データ量に応じてシートを追加したい- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ 中村 -(2022/01/15(00:20)) □U R L/ 環境 エクセル2019 windows10 転記.xlsxの中に 作業シート(オブジェクト名 sagyouSH) チェックリスト(オブジェクト名 chSH) があります 作業シートの内容をチェックシートに転記したいのですが、データ量に応じてチェックリスト1, 2, 3....というようにシートを追加したい 参考にしたページ h ttps://tonari-it.com/excel-vba-invoice/ 現在のコード '注文コードの転記 chSH.Cells(2, 7).Value = sagyouSH.Cells(1, 2).Value '自社注文コードの転記 chSH.Cells(3, 7).Value = sagyouSH.Cells(2, 2).Value '隠れているかもしれない行を再表示しておく (オプション A) 'chSH.Rows("6:65").Hidden = False '行数カウント用の変数 Dim rowsData As Long '最後の行数を取得 rowsData = sagyouSH.Cells(Rows.Count, 1).End(xlUp).Row Dim i As Long, j As Long, k As Long k = 6 For i = 4 To rowsData For j = 2 To 6 chSH.Cells(k, j).Value = sagyouSH.Cells(i, j).Value Next j k = k + 1 Next i 'データがない行を隠す (オプション B) chSH.Rows(6 + rowsData - 1 & ":65").Hidden = True 'オプションA, Bはどちらかを有効にしておく End Sub 作業シートの内容 A B C D E F 1 注文コード 777 2 自社コード J-777 3 注文コード 製品名 詳細 メーカー 数量 単位 4 J-777-1 ABCD 123 EFG 100 kg 5 J-777-2 ABCD 123 EFG 100 kg 6 J-777-3 ABCD 123 EFG 100 kg 7 J-777-4 ABCD 123 EFG 100 kg 8 J-777-5 ABCD 123 EFG 100 kg 9 J-777-6 ABCD 123 EFG 100 kg 10 J-777-7 ABCD 123 EFG 100 kg 以降もデータが続きます チェックリスト A B C D E F 1 2 注文コード 777 3 自社コード J-777 4 5 製品名 詳細 メーカー 数量 単位 6 1 ABCD 123 EFG 100 kg 7 2 ABCD 123 EFG 100 kg 8 3 ABCD 123 EFG 100 kg 9 4 ABCD 123 EFG 100 kg 10 5 ABCD 123 EFG 100 kg 65 60 ABCD 123 EFG 100 kg チェックリストは65行しかないので、作業シートのデータが65以上の場合は 新しいチェックリストを作って続きをそのシートにコピーしたい よろしくお願いします この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194615] Re[1]: データ量に応じてシートを追加したい- ■記事引用/メール受信=OFF■ □投稿者/ マナ -(2022/01/15(01:34)) □U R L/ Sub test() Dim ws As Worksheet Dim i As Long Dim n As Long Dim lastRow As Long For i = 4 To sagyouSH.Cells(Rows.Count, 1).End(xlUp).Row Step 60 chSH.Copy chSH Set ws = ActiveSheet n = n + 1 ws.Name = "チェックシート" & n ws.Cells(6, 1).Value = (n - 1) * 60 + 1 ws.Cells(2, 7).Resize(2).Value = sagyouSH.Cells(1, 2).Resize(2).Value ws.Cells(6, 2).Resize(60, 5).Value = sagyouSH.Cells(i, 2).Resize(60, 5).Value lastRow = ws.Cells(Rows.Count, 2).End(xlUp).Row If lastRow < 65 Then ws.Rows(lastRow + 1 & ":65").Hidden = True Next End Sub この記事にはVBAのコードが含まれています。 緑の太文字→注釈 茶色の太文字→条件分岐 赤の太文字→ループ 青の太文字→その他 |
[194622] Re[2]: データ量に応じてシートを追加したい- ■ / 記事引用/メール受信=OFF■ □投稿者/ 中村 -(2022/01/16(17:51)) □U R L/ いつもありがとうございます。 動作完璧です。 ありがとうございました。 |
このトピックに書きこむ |
---|