2014-07-07 81 views
3

我的工作簿包含n個工作表。其中5個包含應輸出到文本文件的數據。將5個工作表中的數據導出爲5個文本文件

在子程序中,我創建了5個文本文件,名爲export01 to export05 包含要導出的數據的5個工作表的名稱與export01到export05的命名方式相同。

工作表export01的數據應該寫入文本文件export01等等。

用於導出表export01的數據我已創建此代碼,但我不知道如何導出其他4個表的數據。

我應該複製代碼只是4倍,並改變需要或有更好的解決方案嗎?感謝您的幫助!

sub exportTxt() 
Dim rng As Range 
Dim myTable As String 
Dim myFile As String 

myTable = "export1" 
myFile = "export1.txt" 

Sheets(myTable).Select 
Set rng = Range("a1").CurrentRegion 
Open myFile For Output As #1 
    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 
Close #1 
End Sub 

回答

2

像這樣的事情在您sheetnames在陣列中舉行:

Sub DumpSheets() 
Dim ws As Worksheet 
For Each ws In Sheets(Array("yoursheetnames","test", "test 2", "Sheet4", "Sheet5")) 
    ws.SaveAs "C:\temp\" & ws.Name & "txt", xlTextMSDOS 
Next ws 
End Sub 
+0

據我瞭解你的代碼文本文件是由命令「ws.SaveAs ....」創建的,或者如果存在,那麼這些文件被覆蓋? – alphaService

0

把所有的代碼在一個巨大的For Loop

雖然這是不是要走的事情最有效的方式,它會工作。

For i = 1 to 5 
    myTable = "export" & i 
    myFile = "export" & i & ".txt" 

    ' The rest of your code goes here 

Next i 

你可能會考慮在時間(Writeln)寫一行,甚至使用

WorkBookVariableName.SaveAs myFile, xlCSV 
相關問題