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 宏,然后单击“运行”。 |
前一篇:解决超星电子书无法打开的问题