2017-09-03 8 views
0

サンプルデータ:goo.gl/akWozD(8列の100万行を想定)異なる固定行を異なるフォーマットに分割する方法は?

異なる固定行と異なるファイル形式(CSVやExcel)を解約するには、以下のVBAコードを編集する方法は?たとえば、InputBoxCSVの固定行サイズと同時にExcelの固定行サイズを要求します。

所望の出力は、同じフォルダ内CSV 1, CSV 2, CSV 3, etcExcel 1, Excel 2, Excel 3, etcCSVはX固定している行とExcel Y固定している行であろう。元のワークブックは変更/変更されません。マクロ実行時にXYが尋ねられます。

ありがとうございます。

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 
+0

confer [this](https://stackoverflow.com/questions/44582005/copying-dynamic-range-into-new-workbooks-adding-header-そして節約する新しいブック/ 44584306#44584306) –

答えて

0

正しく理解しても、CSVファイルが作成されていません。これは、以下の手順でで行うことができます。

Dim FSO, wfile As Object 
Dim content As String 
Set FSO = CreateObject("Scripting.FileSystemObject") 
Set wfile = FSO.OpenTextFile("path to the file", 2) 'connection for writing 

'here you prepare whole content of the file 

wfile.Write content 
wfile.Close 

ファイルのcontentを調製するために、あなたはちょうどそれがコンマ(またはものは何でもしたい)で区切られた連続したセルの値に追加します。これを行うには、範囲をループする必要があります。

関連する問題