0
示例數據:goo.gl/akWozD(假設有100萬行8列)如何將不同的固定行分成不同的格式?
如何編輯下面的VBA代碼,以不同的固定行生成不同的文件格式(CSV和Excel)?例如: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) –