将Excel行输出到一系列文本文件

时间:2011-08-22 15:09:06

标签: excel excel-vba notepad++ vba

在Excel中,我在A列中有一个文章名称列表,在B列中有一个免责声明。现在对于A列中的每篇文章,我想创建一个文本文件,其中A是文件的标题, B,免责声明,是文件的内容。

这可能吗?

这个想法是我有几百个,我想让自己更容易。

如果Excel不适合这种情况,有人可以提出替代方案吗? (可能Notepad ++有一个可以帮助的功能吗?)

3 个答案:

答案 0 :(得分:10)

Sub Export_Files()
    Dim sExportFolder, sFN
    Dim rArticleName As Range
    Dim rDisclaimer As Range
    Dim oSh As Worksheet
    Dim oFS As Object
    Dim oTxt As Object

    'sExportFolder = path to the folder you want to export to
    'oSh = The sheet where your data is stored
    sExportFolder = "C:\Disclaimers"
    Set oSh = Sheet1

    Set oFS = CreateObject("Scripting.Filesystemobject")

    For Each rArticleName In oSh.UsedRange.Columns("A").Cells
        Set rDisclaimer = rArticleName.Offset(, 1)

        'Add .txt to the article name as a file name
        sFN = rArticleName.Value & ".txt"
        Set oTxt = oFS.OpenTextFile(sExportFolder & "\" & sFN, 2, True)
        oTxt.Write rDisclaimer.Value
        oTxt.Close
    Next
End Sub

答案 1 :(得分:3)

需要使用变量数组来提高速度的另一种方法,并且需要替代FileSystemObject仅提供文件。

    Sub DataDump()

    Dim X
    Dim lngRow As Long
    Dim StrFolder As String

    StrFolder = "C:\temp"
    X = Range([a1], Cells(Rows.Count, 2).End(xlUp))
    For lngRow = 1 To UBound(X)
    Open StrFolder & "\" & X(lngRow, 1) & ".txt" For Output As #1
    Write #1, X(lngRow, 2)
    Close #1
    Next
    End Sub

答案 2 :(得分:0)

我没有足够的评论来评论其他人的帖子,所以我必须发布这个作为答案。 @ transistor1接受的答案有效;但是,在Excel 2010中需要更改

  

Set oSh = Sheet1

Set oSh = ThisWorkbook.Worksheets("worksheet")

其中"工作表"是数据所在工作表的名称。