下面的这个是按照你所说的,仅仅根据第二行的第一列的值,如果是空或者“追加”,则输出第二行的值到TXT里面。如果第二行的列数比较多(大于256列)且你用的是2007及以上的版本,请将下文中的256改为16384.
Public Sub TextOutPut()
Dim strText As String
Dim i As Integer
If ActiveSheet.Cells(2, 1) = "追加" Or ActiveSheet.Cells(2, 1) = "" Then
'如果第二行第一列为"追加"或为空,则输出第二行,否则不输出
i = 1
Do
strText = strText & ActiveSheet.Cells(2, i) & Chr(9) '相邻两单元格之间的数据用制表符隔开
i = i + 1
Loop Until i = Cells(2, 256).End(xlToLeft).Column + 1
Open ThisWorkbook.FullName & ".txt" For Output As #1 '将txt文件放在该工作簿的文件夹下
Print #1, strText '输出txt
Close #1
End If
End Sub
追问其实我是想从第二行开始,每行进行判断输出,每行只需要输出第二列,应该是按照你的代码在最外层加一个循环就可以,是只要Print一次,在TXT里面就算输出一行吗?
还有个问题,我没有找到具体怎么添加VBA宏然后执行,麻烦给指点一下吧...
追答按ALT + F11,然后插入>>>模块,把下面的东西粘贴进模块,然后按F5运行。
Public Sub TextOutPut()
Dim strText As String
Dim i As Integer
i = 2
If ActiveSheet.Cells(i, 1) = "追加" Or ActiveSheet.Cells(i, 1) = "" Then
'如果第i行第一列为"追加"或为空,则输出第i行第二列,否则不输出
Do
strText = strText & ActiveSheet.Cells(i, 2) & Chr(13) & Chr(10) '按行读入各行内容
i = i + 1
Loop Until i = ActiveSheet.UsedRange.Rows.Count + ActiveSheet.UsedRange.Row
Open ThisWorkbook.FullName & ".txt" For Output As #1 '将txt文件放在该工作簿的文件夹下
Print #1, strText '输出txt
Close #1
End If
End Sub