2016-05-23 7 views
0

Excelブックからtxtファイルに一部のテーブルをエクスポートしようとしています。私はそれを開いている間、ワークブックのためにこれを行うことができました。私のコードは、開いているブックのシートをループし、txtファイル(各シートごとに異なるファイル)にコンテンツをエクスポートします。 .xlsxファイルのディレクトリをループして手作業なしで同じことをする必要があります。誰も助けることができますか?エクセルファイル、ワークブック、ブック、シート(VBAマクロ)のディレクトリやループの内容をループする方法は?

以下

が私のコードです:

Sub Exportation() 

    Dim directory As String 
    Dim WS_Count As Integer, myFile As String, x As Integer 
    Dim rng As Range, cellValue As Variant, i As Integer, j As Integer 

    directory = "C:\Users\Mike\Desktop\Testing\" ' The starting directory 

    Dim fso, newFile, folder, files 
    Set fso = CreateObject("Scripting.FileSystemObject") 

    Set folder = fso.GetFolder(directory) 
    Set files = folder.files 

    For Each file In files 
     WS_Count = ActiveWorkbook.Worksheets.Count 
     For x = 1 To WS_Count 

      myFile = "C:\Users\mohamednuri.beitelma\Desktop\" & Sheets(x).Name & ".txt" 

      'Set rng = Selection 
      Set rng = Sheets(x).Range("A1").CurrentRegion 
      Open myFile For Output As #1 
      cnt = Sheets(x).Cells.SpecialCells(xlCellTypeLastCell).Row 

      For i = 1 To rng.Rows.Count 
       For j = 1 To rng.Columns.Count 

        cellValue = rng.Cells(i, j).Value 

        If j = rng.Columns.Count Then 
         Print #1, cellValue 
        Else 
         Print #1, cellValue & "|", 
        End If 

       Next j 
      Next i 
     Print #1, cnt & " -- " & DateTime.Now 
    Close #1 
Next x 

Next 

End Sub 
+1

あなたが持っている問題は何ですか? –

+0

私は、ファイルのディレクトリをループする必要があります(WS_Countから始まる)ファイルループ内のコードを実行します。理想的には、上記は各ファイルをループし、各ファイル内の各シートをループし、各シートの内容をtxtファイルにエクスポートします。しかし、私は現在、上記のマクロが存在する(つまり、ディレクトリをループしない)ワークブックでexportコマンドを実行するだけです。私は、ループのロジックか、おそらく私の構文が間違っていると思います。各ワークシートを反復処理することで始まるループについては、正確に動作するはずです。何か案は? –

+0

デバッガでステップバイステップを試みましたか? – litelite

答えて

0

は(未テスト)このような何かを試してみてください:

Sub Exportation() 

Dim directory As String 
Dim wb As Workbook 
Dim ws as worksheet 
Dim WS_Count As Integer, myFile As String, x As Integer 
Dim rng As Range, cellValue As Variant, i As Integer, j As Integer 

directory = "C:\Users\Mike\Desktop\Testing\" ' The starting directory 

Dim fso, newFile, folder, files 
Set fso = CreateObject("Scripting.FileSystemObject") 

Set folder = fso.GetFolder(directory) 
Set files = folder.files 

For Each file In files 
    set wb = workbooks.open(filename:=file.path) 
    WS_Count = wb.Worksheets.Count 
    For x = 1 To WS_Count 

     myFile = "C:\Users\mohamednuri.beitelma\Desktop\" & Sheets(x).Name & ".txt" 

     'Set rng = Selection 
     Set rng = wb.Sheets(x).Range("A1").CurrentRegion 
     Open myFile For Output As #1 
     cnt = wb.Sheets(x).Cells.SpecialCells(xlCellTypeLastCell).Row 

     For i = 1 To rng.Rows.Count 
      For j = 1 To rng.Columns.Count 

       cellValue = rng.Cells(i, j).Value 

       If j = rng.Columns.Count Then 
        Print #1, cellValue 
       Else 
        Print #1, cellValue & "|", 
       End If 

      Next j 
     Next i 
     Print #1, cnt & " -- " & DateTime.Now 
    Close #1 
    Next x 

Next 

End Sub 
関連する問題