有时,Excel使用的导出过滤器会在导出的文件中产生不希望的结果。例如,当您导出到制表符分隔的文本文件时,某些Excel过滤器会在单元格中的文本周围加上引号。例如,假定一个特定的单元格包含以下文本:

Create bts; sitemask = "0110"; pcmlink = 40

但是,这是Excel导出单元格中文本的方式:

"Create bts; sitemask = ""0110""; pcmlink = 40"

请注意,Excel首先在整个单元格内容周围添加额外的引号,然后再在该单元格中任何先前被“引用”的文本周围添加额外的引号。

解决该问题的一种方法是,将Excel创建的文本文件简单地加载到另一个程序(如Word)中,并使用“查找和替换”功能删除不需要的引号。但是,更好的解决方案是创建自己的宏,该宏创建输出文本文件。

请考虑以下宏:

Sub Export()

Dim r As Range, c As Range     Dim sTemp As String

Open "c:\MyOutput.txt" For Output As #1     For Each r In Selection.Rows         sTemp = ""

For Each c In r.Cells             sTemp = sTemp & c.Text & Chr(9)

Next c

'Get rid of trailing tabs         While Right(sTemp, 1) = Chr(9)

sTemp = Left(sTemp, Len(sTemp) - 1)

Wend         Print #1, sTemp     Next r     Close #1 End Sub

您需要做的就是选择要导出的单元格,然后运行宏。从工作表中提取所选内容中的单元格,并将其放置在文件c:MyOutput.txt中。 (可以在宏中将此文件名更改为您需要的内容。)

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(2237)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: