0
サンプルデータ:goo.gl/akWozD(8列の100万行を想定)異なる固定行を異なるフォーマットに分割する方法は?
異なる固定行と異なるファイル形式(CSVやExcel)を解約するには、以下のVBAコードを編集する方法は?たとえば、InputBox
はCSV
の固定行サイズと同時にExcel
の固定行サイズを要求します。
所望の出力は、同じフォルダ内CSV 1, CSV 2, CSV 3, etc
とExcel 1, Excel 2, Excel 3, etc
CSV
はX固定している行とExcel
Y固定している行であろう。元のワークブックは変更/変更されません。マクロ実行時にX
とY
が尋ねられます。
ありがとうございます。
Public Sub SplitFixedRows()
Dim wbOrig As Workbook
Dim wb As Workbook
Dim ThisSheet As Worksheet
Dim NumOfColumns As Integer
Dim RangeToCopy As Range
Dim RangeOfHeader As Range
Dim WorkbookCounter As Integer
Dim RowsInFile
Application.ScreenUpdating = False
RowsInFile = InputBox("Please enter data size +1 header (Example: 11, 101, 501): ")
Set wbOrig = ActiveWorkbook
Set ThisSheet = wbOrig.ActiveSheet
NumOfColumns = ThisSheet.UsedRange.Columns.Count
WorkbookCounter = 1
Set RangeOfHeader = ThisSheet.Range(ThisSheet.Cells(1, 1), ThisSheet.Cells(1, NumOfColumns))
For p = 2 To ThisSheet.UsedRange.Rows.Count Step RowsInFile - 1
Set wb = Workbooks.Add
RangeOfHeader.Copy wb.Sheets(1).Range("A1")
Set RangeToCopy = ThisSheet.Range(ThisSheet.Cells(p, 1), ThisSheet.Cells(p + RowsInFile - 2, NumOfColumns))
RangeToCopy.Copy wb.Sheets(1).Range("A2")
wb.SaveAs wbOrig.Path & "\Data " & WorkbookCounter
wb.Close
WorkbookCounter = WorkbookCounter + 1
Next p
Application.ScreenUpdating = True
Set wb = Nothing
End Sub
confer [this](https://stackoverflow.com/questions/44582005/copying-dynamic-range-into-new-workbooks-adding-header-そして節約する新しいブック/ 44584306#44584306) –