VBA编码为Excel 2010中的每个工作表创建.txt文件

时间:2015-04-22 07:28:55

标签: excel excel-vba vba

我正在制作一个包含2列数据customerproduct的电子表格,我创建了一个宏来将列表分成每个产品的单个表单,这些表格就像一个梦想。现在,我想为每个工作表创建一个文本(MS-DOS).txt文件,并将它们保存在特定位置。

在此之后不确定需要哪些信息,因为创建的工作表只有1列,而客户名称是以产品命名的工作表。

2 个答案:

答案 0 :(得分:1)

这应该让你去。它为工作簿中的每个工作表创建一个新的.txt文件,保存到与工作簿本身相同的目录中。

如果您遇到任何问题,请告诉我。

Sub TextFileExport()

    Dim rngCell As Range
    Dim shtWorkSheet As Worksheet
    Dim i As Integer
    Dim strFilename As String   'text file filename

    'specify output name here
    strFilename = "OutputName"

    'loop through worksheets
    For Each shtWorkSheet In ThisWorkbook.Worksheets

        'create new file name
        i = i + 1
        Open ThisWorkbook.Path & "\" & strFilename & "Sheet_" & i & ".txt" For Output As #1

        'loop through cells
        For Each rngCell In shtWorkSheet.UsedRange

            If rngCell.Text <> "" Then
                'print the line
                Print #1, rngCell.Text
            End If

        Next rngCell

    'close so can reopen next one
    Close #1

    Next shtWorkSheet

End Sub

答案 1 :(得分:0)

请遵循此解决方案:

  1. File&gt; Export&gt; Change File Type&gt; Text (Tab delimited)(*.txt)
  2. 另存为... 窗口中,选择第一张工作表的文本文件名称,然后选择确定
  3. 重复将文本文件保存为(2)。
  4. 我认为,当你不需要任何超过这个功能时,你不需要重新创建轮子;)。


    我认为您需要使用此声明:

    Dim ws As Worksheet
    
    For Each ws In ActiveWorkbook.Sheets
    
        ws.Activate
        ActiveWorkbook.SaveAs Filename:="C:\" + ws.Name + ".txt", _
                      FileFormat:=xlText, CreateBackup:=False
    
    Next
    
相关问题