2016-09-21 2 views
0

.xlsファイルからcsvファイルに日付を転送するコードを記述しました。しかし、.csvファイルが通常のExcelファイルと同じように100万行制限値に達すると、コードは削除されます。 mainvb.activateをどこに置くかは、csvに情報を貼り付ける場所がわかります。私はこれがどのようにそれを貼り付けると関係があるかもしれないと思うが、私はよくわからない。ありがとう。.csvファイルに行制限がありますか? (VBA)

Sub LoopThroughFilesInFolder_Click() 

Dim mainwb As Workbook 
Dim wb As Workbook 
Dim main_i As Long 
Dim wb_i As Long 
Dim transfer_array(1, 14) As Variant 

Set mainwb = Workbooks.Open(Filename:="C:\Users\n808037\Desktop\csv\test.csv", ReadOnly:=False) 

mainwb.Activate 

Set FileSystemObj = CreateObject("Scripting.FileSystemObject") 
Set FolderObj = FileSystemObj.GetFolder("C:\Users\...") 

main_i = 1 

For Each fileObj In FolderObj.Files  'loop through the files 

Set wb = Workbooks.Open(fileObj.Path) 

'workbook row counter 
    wb_i = 2 
Do While wb.Sheets(1).Cells(wb_i, 1) <> "" 

    For i = 1 To 13 
     transfer_array(1, i) = wb.Sheets(1).Cells(wb_i, i).Value 
    Next i 

mainwb.Activate 'THIS WILL BE WHERE I OPEN AND PASTE TO THE CSV FILE 

    For i = 1 To 13 
    mainwb.Worksheets("test").Cells(main_i, i).Value = transfer_array(1, i) & "" 
    Next i 

    mainwb.Worksheets("test").Cells(main_i, 14).Value = Now & "" 

    wb_i = wb_i + 1 
    main_i = main_i + 1 
Loop 

wb.Activate 
wb.Save 
wb.Close 

Next fileObj 

mainwb.Save 

End Sub 
+1

なぜ行に制限はありませんか?それをExcelファイルとして開きます。 – Comintern

+0

その後、私は何を書いていますか? – user5619709

答えて

0

これは、これを行うためのひとつの方法である:
は、Microsoftスクリプトランタイムライブラリにプロジェクトへの参照を追加します。 csvファイル用のファイルオブジェクトを作成します。その後、OpenAsTextStreamメソッドを使用して、csvファイルの読み込み、書き込み、または追加を行うことができます。ファイルをExcelワークブックとして扱っている限り、Excelと同じ制限があります。あなたは今テキストとして扱っているので、コンマ区切り文字(または文字列値などの引用符のようなもの)を追加するのはあなた次第です

+0

*これを行う* 2番目の方法は、Excelを使用して.csvファイルを個別に作成し、Excelを使用せずに数多くのメソッドを使用して相互に追加することです。 – Comintern

関連する問題