基于Excel工作表列条件提取数据生成文本文件
Excel VBA宏实现条件提取数据并写入文本文件
实现思路
- 遍历当前工作簿的所有工作表
- 逐行校验A列(Filename)是否为
SysInfoMgrServices.csv、E列(7.4 J2)是否为x - 将符合条件的B列(variable name)内容追加写入指定文本文件
VBA代码实现
Sub ExtractAndWriteToText() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim filePath As String Dim fileNum As Integer ' 修改为你实际要保存的文本文件路径 filePath = "C:\Your\Target\Path\output.txt" ' 获取可用文件编号 fileNum = FreeFile() ' 以追加模式打开文件(不会覆盖已有内容) Open filePath For Append As #fileNum ' 遍历工作簿中所有工作表 For Each ws In ThisWorkbook.Worksheets ' 获取当前工作表A列最后一行的行号(避免遍历空行) lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' 从第2行开始遍历(假设第1行是表头,若数据从第1行开始则改为i=1) For i = 2 To lastRow ' 校验条件:A列等于指定文件名,E列等于"x" If ws.Cells(i, "A").Value = "SysInfoMgrServices.csv" And _ ws.Cells(i, "E").Value = "x" Then ' 将对应B列内容写入文本文件,每行一条 Print #fileNum, ws.Cells(i, "B").Value End If Next i Next ws ' 关闭文件 Close #fileNum MsgBox "数据提取完成,已写入指定文本文件!", vbInformation End Sub
使用步骤
- 打开目标Excel文件,按
Alt+F11打开VBA编辑器 - 右键左侧工作簿名称,选择「插入」->「模块」
- 将上述代码粘贴到模块窗口,修改
filePath为你的实际保存路径 - 按
F5运行宏,或回到Excel界面,通过「开发工具」->「宏」选择ExtractAndWriteToText执行
内容的提问来源于stack exchange,提问作者Nathan Floyd
相关产品推荐
相关产品推荐

