新浪博客

Excel导出带有逗号和引号分隔符的文本文件

2007-07-25 21:14阅读:
Excel 没有自动将数据导出为文本文件的菜单命令,因此导出的文本文件同时带有逗号和引号分隔符。例如,没有命令能自动创建包含以下内容的文本文件:
'Text1','Text2','Text3'
但是,您可以使用 VBA 宏在 Excel 中创建该功能。这种文件格式是在诸如 Microsoft Office Access 2003 和 Microsoft Office Word 2003 之类的应用程序中导入文本数据时常见的格式。
您可以在如下所示的 VBA 宏中使用 Print 语句,导出同时带有逗号和引号分隔符的文本文件。要使该程序正常运行,必须在运行该程序之前选择包含数据的单元格。
使用以下示例之前,请执行以下步骤:
1.
打开一个新工作簿。
2.
在“工具”菜单中,指向“”,然后单击“Visual Basic 编辑器”(或者简单地按下 ALT+F11 组合键)。在“Visual Basic 编辑器”中,单击“插入”菜单,然后单击“模块”。
3.
将以下示例代码键入或粘贴到模块中:
Sub QuoteCommaExport() Dim DestFile As String Dim FileNum As Integer Dim ColumnCount As Integer Dim
RowCount As Integer ' 提示用户指定目标文件名。 DestFile = InputBox('Enter the destination filename' & _ Chr(10) & '(with complete path and extension):', _ 'Quote-Comma Exporter') ' 获取下一个可用的文件句柄编号。 FileNum = FreeFile() ' 关闭错误检查功能。 On Error Resume Next ' 尝试打开目标文件以供输出。 Open DestFile For Output As #FileNum ' 如果出现错误,则报告错误并结束程序。 If Err <> 0 Then MsgBox 'Cannot open filename ' & DestFile End End If ' 打开错误检查功能。 On Error GoTo 0 ' 循环选择的每一行。 For RowCount = 1 To Selection.Rows.Count ' 循环选择的每一列。 For ColumnCount = 1 To Selection.Columns.Count ' 将当前单元格中的文本写入到文件中,文本用引号括起来。 Print #FileNum, '''' & Selection.Cells(RowCount, _ ColumnCount).Text & ''''; ' 检查单元格是否位于最后一列。 If ColumnCount = Selection.Columns.Count Then ' 如果是,则写入一个空行。 Print #FileNum, Else ' 否则,则写入一个逗号。 Print #FileNum, ','; End If ' 开始 ColumnCount 循环的下一个迭代。 Next ColumnCount ' 开始 RowCount 循环的下一个迭代。 Next RowCount ' 关闭目标文件。 Close #FileNum End Sub
4.
运行该宏之前,请选择要导出的数据,然后在“工具”菜单中指向“”并单击“”。
5.
选择 QuoteCommaExport 宏,然后单击“运行”。

我的更多文章

下载客户端阅读体验更佳

APP专享