从excel创建文本文件

从excel创建文本文件,excel,excel-2007,excel-formula,excel-2010,vba,Excel,Excel 2007,Excel Formula,Excel 2010,Vba,需要从excel行创建文本文件。 第1列应包括文件名,第2列应包括文本文件的内容。每一行都将具有新文件名或该新文本文件的新内容。此外,文本的内容应分成几行。 如何做到这一点?谢谢。已编辑解决方案,文本分隔为行 对于样品,使用以下字符: ;:/| 根据需要向正则表达式模式添加新分隔符。完整代码如下: Sub Text2Files() Dim FileStream As Object Dim FileContent As String Dim i As Long Dim SavePath As S

需要从excel行创建文本文件。 第1列应包括文件名,第2列应包括文本文件的内容。每一行都将具有新文件名或该新文本文件的新内容。此外,文本的内容应分成几行。
如何做到这一点?谢谢。

已编辑解决方案,文本分隔为行

对于样品,使用以下字符:

;:/|

根据需要向正则表达式模式添加新分隔符。完整代码如下:

Sub Text2Files()

Dim FileStream As Object
Dim FileContent As String
Dim i As Long
Dim SavePath As String
Dim RegX_Split As Object

Set RegX_Split = CreateObject("VBScript.RegExp")
RegX_Split.Pattern = "[\;\:\,\\\/\|]" 'List of used line seperators as \X
RegX_Split.IgnoreCase = True
RegX_Split.Global = True

Set FileStream = CreateObject("ADODB.Stream")
SavePath = "D:\DOCUMENTS\" 'Set existing folder with trailing "\"

For i = 1 To ThisWorkbook.ActiveSheet.Cells(1, 1).CurrentRegion.Rows.Count

    FileContent = RegX_Split.Replace(ThisWorkbook.ActiveSheet.Cells(i, 2).Text, vbNewLine)
    FileStream.Open
    FileStream.Type = 2 'Text
    FileStream.Charset = "UTF-8" 'Change encoding as required
    FileStream.WriteText FileContent
    FileStream.SaveToFile SavePath & ThisWorkbook.ActiveSheet.Cells(i, 1).Text, 2 'Will overwrite the existing file
    FileStream.Close

Next i

End Sub
  • 了解有关ADO流对象的更多信息:
  • 适用于初学者的正则表达式:

  • 带有上述代码的示例文件如下:

    那么-到目前为止您尝试了什么?关于行分隔符,我的意思是文本内容1可以在实际输出文件中拆分为几行,例如:
    Text
    Contents
    1
    如何在文本之间添加换行符?非常感谢你@亨利至少哪个字符用作新行分隔符?空间逗号?还是字符列表?可以是任何字符。我愿意输入任何字符来分隔行,除了逗号、句号或空格。谢谢。@Henrythellest和您的请求正则表达式是唯一灵活的解决方案),但它会花费一点-对我来说不是一个即时的解决方案。我们会在周末再谈这个问题。如果有更多的请求,请随时在这里发布@至少,我不确定是否会通知您答案编辑,但更新的解决方案在上面。