仅将Excel工作表文本保存到文本文件VBA

时间:2015-09-25 12:04:55

标签: excel vba excel-vba

我正在尝试将工作表中一列的值复制到文本文件中。我目前的代码导致运行时错误434。

Sheets("Output to fcf.1").Columns("A").SaveToText "P:\4_Calcs\02. Flag Mapping\test_.txt"

如果我尝试保存整张表

Sheets("Output to fcf.2").SaveToText "P:\Clear Project Drive\CLE10276 AWS SMP Model Assessmnts\4_Calcs\02. Flag Mapping\test2_.txt"

我将整个工作表转换为文本而不仅仅是工作表中的文本。有一种简单的方法可以做到这一点吗?

提前致谢!

2 个答案:

答案 0 :(得分:5)

不确定您拥有哪个Excel版本但我没有看到SaveToText的方法。

但是这个程序应该有效,或者至少让你开始......

Sub SaveColumn(sheetName As String, columnName As String, fileName As String)
  Dim cell
  Dim fso
  Dim file

  Set fso = CreateObject("Scripting.FileSystemObject")
  Set file = fso.CreateTextFile(fileName, True)
  For Each cell In Sheets(sheetName).Columns(columnName).Cells
    If cell.Value <> "" Then
      file.WriteLine cell.Value
    End If
  Next
  file.Close

  Set file = Nothing
  Set fso = Nothing
End Sub

要打电话......

SaveColumn "Output to fcf.1", "A", "P:\4_Calcs\02. Flag Mapping\test_.txt"

答案 1 :(得分:2)

这旨在用作宏。

分步指南:

1)从excel,按键盘上的Alt + F11。

2)在菜单栏中,点击插入,然后点击模块

3)将下面提供的代码复制并粘贴到打开的新模块中。

注意: DocPath = "C:\docs\data.txt"应该是您希望保存输出文件的位置,包括文件的实际名称。请记住,您希望输出文件所在的文件夹应该是ALREADY存在。如果找不到该文件夹​​,则不会创建该文件夹。

4)在菜单栏中,单击工具,然后单击参考。确保&#34; Microsoft Office 14.0对象库&#34;以及&#34; Microsoft Word 14.0对象库&#34;检查,并点击好(See screenshot for details

5)将文档另存为 .xlsm 文件(此文件类型支持宏)

6)关闭VBA编辑器。返回Excel,在功能区上单击查看,然后单击。您的新宏应位于列表中 ExportToTXT

7)选择它并点击运行。

Sub ExportToTXT()

  Dim DocPath As String
  Dim MsgBoxCompleted

  Columns("A").Select

  Dim AppWord As Word.Application
  Set AppWord = CreateObject("Word.Application")

  AppWord.Visible = False

  Selection.Copy

  DocPath = "C:\docs\data.txt"

  'Create and save txt file
  AppWord.Documents.Add
  AppWord.Selection.Paste
  AppWord.ActiveDocument.SaveAs2 Filename:=DocPath, FileFormat:=wdFormatText

  Application.CutCopyMode = False
  AppWord.Quit (wdDoNotSaveChanges)
  Set AppWord = Nothing

  MsgBoxCompleted = MsgBox("Process complete.", vbOKOnly, "Process complete")

End Sub
祝你好运,如果你有任何问题,请不要犹豫。

注意:这些指示对于您的技能水平可能看起来过于简化,但我写了这样的答案,以便将来可能帮助其他人。

修改

更改

DocPath = "C:\docs\data.txt"

DocPath = "C:\docs\data.fcf"

并改变

AppWord.ActiveDocument.SaveAs2 Filename:=DocPath, FileFormat:=wdFormatText

AppWord.ActiveDocument.SaveAs2 Filename:=DocPath

输出文件将是 .fcf 格式。它是否能正常打开是我不确定的。您必须在正在使用的程序中进行测试。