在Excel电子表格创建一个从每一行文本文件在Excel电子表格创建一个从每一行文本文件(Creat

2019-05-12 03:13发布

我需要帮助的所谓的“工作表”的excel电子表格制作,从各行单独的文本文件。 我希望文本文件,列A的含量来命名,与列BG是内容,最好用在文本文件中的每一列之间的双硬回车,所以每列将在它们之间的空行。

这可能吗? 我将如何去了解它。 谢谢!

Answer 1:

@ nutsch的回答是完全正常的,并应工作时间99.9%。 在个别情况下,FSO不可用,下面是不具有相关性的版本。 由于是,它需要的是源工作表中没有的内容部分的任何空白行。

Sub SaveRowsAsCSV()

Dim wb As Excel.Workbook, wbNew As Excel.Workbook
Dim wsSource As Excel.Worksheet, wsTemp As Excel.Worksheet
Dim r As Long, c As Long

    Set wsSource = ThisWorkbook.Worksheets("worksheet")

    Application.DisplayAlerts = False 'will overwrite existing files without asking

    r = 1
    Do Until Len(Trim(wsSource.Cells(r, 1).Value)) = 0
        ThisWorkbook.Worksheets.Add ThisWorkbook.Worksheets(1)
        Set wsTemp = ThisWorkbook.Worksheets(1)

        For c = 2 To 7
            wsTemp.Cells((c - 1) * 2 - 1, 1).Value = wsSource.Cells(r, c).Value
        Next c

        wsTemp.Move
        Set wbNew = ActiveWorkbook
        Set wsTemp = wbNew.Worksheets(1)
        'wbNew.SaveAs wsSource.Cells(r, 1).Value & ".csv", xlCSV 'old way
        wbNew.SaveAs "textfile" & r & ".csv", xlCSV 'new way
        'you can try other file formats listed at http://msdn.microsoft.com/en-us/library/office/aa194915(v=office.10).aspx
        wbNew.Close
        ThisWorkbook.Activate
        r = r + 1
    Loop

    Application.DisplayAlerts = True

End Sub


Answer 2:

所附的VBA宏将做到这一点,节省在C txt文件:\ TEMP \

Sub WriteTotxt()

Const forReading = 1, forAppending = 3, fsoForWriting = 2
Dim fs, objTextStream, sText As String
Dim lLastRow As Long, lRowLoop As Long, lLastCol As Long, lColLoop As Long

lLastRow = Cells(Rows.Count, 1).End(xlUp).Row

For lRowLoop = 1 To lLastRow

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set objTextStream = fs.opentextfile("c:\temp\" & Cells(lRowLoop, 1) & ".txt", fsoForWriting, True)

    sText = ""

    For lColLoop = 1 To 7
        sText = sText & Cells(lRowLoop, lColLoop) & Chr(10) & Chr(10)
    Next lColLoop

    objTextStream.writeline (Left(sText, Len(sText) - 1))


    objTextStream.Close
    Set objTextStream = Nothing
    Set fs = Nothing

Next lRowLoop

End Sub


Answer 3:

对于其他人的利益,我整理问题出来了。 我换成 “CHR(10)CHR(10)” 改为 “CHR(13)CHR(10)”,它完美地工作。



Answer 4:

我用简单的代码如下现在救了我的excel行作为一个文本文件或许多其他格式相当长的一段时间,它一直为我工作。

子savemyrowsastext()
昏暗的X

对于每一个小区在Sheet1.Range( “A1:A” &Sheet1.UsedRange.Rows.Count)
“你可以将工作表Sheet1改变自己的选择
SAVETEXT = cell.Text
打开 “C:\瓦帕\ WWW \ GeoPC_NG \ sogistate \ igala_land \” &SAVETEXT& “.PHP” 以便输出为#1
印刷#1,cell.Offset(0,1)。文本
关闭#1
对于x = 1至3个“循环3次。
蜂鸣“声音提示音。
下一个x
下一个单元格
结束小组

注意:

1.柱A1 =文件标题
2.柱B1 =内容文件
3.直到包含文字最后一行(即空行)

按相反的顺序,如果你想让它像这样;

1.柱A1 =文件标题
2.柱A2 =文件内容
3.待包含文本(即空行)的最后一排,只是改变打印#1,cell.Offset(0,1)。文本 打印#1,cell.Offset(1,0)。文本

我的文件夹位置= C:\ WAMP \ WWW \ GeoPC_NG \ kogistate \ igala_land \
我的文件扩展名= .PHP,您可以将扩展名更改自己的选择文件(.txt,热媒及的.csv等),我包括在每个省要知道,如果我的工作是怎么回事结束BIP声音
昏暗的X
对于x = 1至3个“循环3次。
蜂鸣“声音提示音。



文章来源: Create text Files from every row in an Excel spreadsheet