将5个工作表中的数据导出为5个文本文件

时间:2014-07-07 23:23:24

标签: excel excel-vba vba

我的工作簿包含n个工作表。其中5个包含应导出到文本文件的数据。

在子程序中,我创建了5个名为export01的文本文件到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 个答案:

答案 0 :(得分:2)

像这样你的表名保存在一个数组中:

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

答案 1 :(得分: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