【问题标题】:Create text files from excel从 excel 创建文本文件
【发布时间】:2013-01-18 08:22:14
【问题描述】:

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

【问题讨论】:

  • 那么-到目前为止,您尝试了什么?

标签: excel excel-2007 excel-formula excel-2010 vba


【解决方案1】:

将文本分隔为行的编辑解决方案。

对于示例,使用了以下字符:

;:,/|

根据需要向 RegEx 模式添加新的分隔符。完整代码如下:

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
  1. 阅读有关 ADO 流对象的更多信息: http://www.w3schools.com/ado/ado_ref_stream.asp
  2. RegEx 初学者: http://www.jose.it-berater.org/scripting/regexp/regular_expression_syntax.htm

上面代码的示例文件在这里:https://www.dropbox.com/s/kh9cq1gqmg07j20/Text2Files.xlsm

【讨论】:

  • 关于行分隔符,我的意思是 Text Contents 1 可以在实际输出文件中拆分成几行,例如:TextContents1我如何在此处添加换行符在文字之间?非常感谢!
  • @HenryTheLeast 哪个字符用作换行符?空间?逗号?还是字符列表?
  • 可以是任意字符。我愿意打入任何字符来分隔行,除了逗号、句号或空格。谢谢。
  • @HenryTheLeast 与您的请求 RegEx 表达式是唯一灵活的解决方案)))但它会花费一点 - 对我来说不是一个直接的解决方案。将在周末回到那个。如果有更多请求,请随时在此处发布!
  • @HenryTheLeast 我不确定您是否收到有关答案编辑的通知,但更新的解决方案在上面。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-23
  • 2013-06-12
  • 1970-01-01
  • 2020-06-04
  • 1970-01-01
相关资源
最近更新 更多