Excel VBA教程:数据导出与导入txt文件

需积分: 9 2 下载量 6 浏览量 更新于2024-08-05 收藏 28KB DOC 举报
"该文档是关于使用Excel VBA将数据导出到文本文件的经典应用案例。通过编写VBA宏,用户可以自动化地将选中的Excel数据范围保存为TXT文件,并且还提供了导入TXT文件的宏代码。" 在Excel中,Visual Basic for Applications (VBA) 是一种强大的工具,允许用户自定义工作流程并自动化重复任务。在这个案例中,我们有两个主要的VBA子程序:`ExportRange` 和 `ImportRange`。 1. **ExportRange Sub**: - 这个子程序用于将当前选定的数据范围(`ExpRng`)导出为一个名为“textfile.txt”的纯文本文件。 - 首先,它确定选定区域的列数(`NumCols`)和行数(`NumRows`)。 - `Open Filename For Output As #1` 打开一个文件句柄,准备写入数据。 - 使用嵌套的For循环,对每个单元格进行迭代,读取其值并将其写入文本文件。如果数据是数值,使用 `Val()` 函数转换为数值;如果单元格为空,则赋值为空字符串。 - 使用分号 (`;`) 分隔同一行内的数据,最后一列除外,因为它直接换行 (`Write#1, Data` 而不是 `Write#1, Data;`)。 - 最后,关闭文件句柄。 2. **ImportRange Sub**: - 这个子程序则用于从指定的TXT文件(在这个例子中是“textfile.txt”)导入数据到活动单元格(`ImpRng`)。 - 同样,它首先定义变量,然后尝试打开文件。如果文件不存在,会显示错误消息并退出子程序。 - 使用 `On Error Resume Next` 处理可能的错误,如文件未找到。 - 通过读取文件,逐字符处理,构建文本字符串(`txtAsString`)。当遇到回车符时,将当前行的数据解析并处理,然后清空文本字符串,准备读取下一行。 - 每行数据读取完成后,将其插入到工作表的相应位置。 这两个子程序展示了VBA在Excel中处理数据的强大功能。它们可以轻松地根据需要进行修改,以适应不同格式或位置的文件。用户可以通过调整 `ExpRng` 和 `ImpRng` 来选择不同的数据范围,或者修改文件路径来读取/写入其他位置的文件。对于需要频繁进行数据导入导出的用户,这样的自动化解决方案可以大大提高工作效率。