[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『エクセルファイルを5000行ごとに別ファイルに分割したい』(サカタ)
エクセルファイルを上から4行残して5000行ごとに別ファイルに分割したい
分割したファイルには上から4行は記載された状態にしたいです。
よろしくお願いいたします。
< 使用 Excel:unknown、使用 OS:unknown >
(応援してる) 2023/08/24(木) 12:56:22
エクセル シート 1000行ごと 分割 保存
でネット検索したら結構事例がヒットしました。
参考HPです。
データ分割して別ブックに保存 〜Excel 2013 マクロ講座 https://kokodane.com/2013_macro_75c.htm
ちょっと手間をかけたらVLOOKUPなどの関数を 使って別シートでデータを参照してデータを切り出して別ブック として保存、という方法もあります。 (MK) 2023/08/24(木) 15:39:23
こんな感じかな?
Sub データを分割して新規ブックにコピー() Const コピー行 = 5000 Dim Wb As Workbook, 元シート As Worksheet, ファイル名 As String Dim lastRow As Long, lastCol As Long, i As Long, k As Long Dim top4Rows As Range, r As Range
Set 元シート = ActiveSheet
With 元シート.UsedRange lastRow = .SpecialCells(xlCellTypeLastCell).Row lastCol = .SpecialCells(xlCellTypeLastCell).Column Set top4Rows = .Resize(4) End With
Application.ScreenUpdating = False
k = 0
For i = 5 To lastRow Step コピー行 Set Wb = Workbooks.Add ' 新規ブック作成 Set r = Union(top4Rows, 元シート.Cells(i, "A").Resize(コピー行, lastCol))
k = k + 1 ファイル名 = "top5000-" & Format(k, "000")
r.Copy Wb.Worksheets(1).Range("A1")
Wb.Worksheets(1).Columns("A:F").AutoFit Wb.SaveAs Filename:=ファイル名 ' マクロファイルと同一フォルダに保存して閉じる Wb.Close ' Next i
Application.ScreenUpdating = True End Sub
(半平太) 2023/08/24(木) 17:31:43
仰ることだけだと↓のような感じでもよさそうに思います。
Sub テキトー() Dim i As Long With ActiveSheet For i = 5 To .Cells(.Rows.Count, "A").End(xlUp).Row Step 5000 Union(.Rows("1:4"), .Rows(i).Resize(5000)).[セル範囲をコピーする命令] Workbooks.Add.Worksheets(1).Range("A1").[値貼り付けする命令] Workbooks(Workbooks.Count).Worksheets(1).Range("A1").[書式貼り付けする命令] Workbooks(Workbooks.Count).[ブックを(i - 4) \ 5000 & "番目" という名前で保存する命令] Workbooks(Workbooks.Count).[ブックを閉じる命令] Next i End With End Sub
※[]の部分は【マクロの記録】で調べることができます。
(もこな2) 2023/08/24(木) 18:55:53
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.