
vba 循环检测一列单元格并写入文件
从D3到D31(每两行合并,共15格),循环检测单元格是否为空,如果为空,则停止,如果不为空,则将单元格内容写入文件#1.拜托给出具体代码...
从D3到D31(每两行合并,共15格),循环检测单元格是否为空,如果为空,则停止,如果不为空,则将单元格内容写入文件#1.拜托给出具体代码
展开
3个回答
展开全部
我的思路也和1楼一样。我简写了一下,没有指定工作表,执行时候需要首先激活目标工作表
Sub 测试()
Dim f As String
f = ThisWorkbook.path & "\a.txt"
Open f For Append As #1
Dim A As Integer
For A = 3 To 31 Step 2
If Cells(A, 4) = "" Then
'Exit For 这一块我猜是你描述有问题吧,你原意是不是如果为空则进行下一个单元格的判断?
Else
Print #1, Cells(A, 4)
End If
Next A
Close #1
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
代码完整一些:
Private Sub CommandButton1_Click()
Dim a, f, fNm, i, tmp
With ActiveSheet
a = .Range(.Cells(3, "D"), .Cells(31, "D"))
End With
fNm = "D:\我的文档\Desktop\aaaa.txt"
f = Application.GetSaveAsFilename(fNm, "文本文件,*.txt")
Open f For Output As #1
For i = LBound(a) To UBound(a) Step 2
tmp = a(i, 1)
If tmp = "" Then Exit For '如果为空,则停止
Print #1, tmp
Next
Close #1
End Sub
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
哦?D3--D31,合并?15格?
for j=3 to 31
if sheet1.cells(j,4)<>""
open file as input #1
print,#1,sheet1.cells(j,4)
close #1
end if
next
大致就是这个样子了,我是手工写的,语法可能存在写错的,你自己适当修改一下,还是合并的那个,不明白具体是什么样子的,你可以参考上面思路自己修改了。
for j=3 to 31
if sheet1.cells(j,4)<>""
open file as input #1
print,#1,sheet1.cells(j,4)
close #1
end if
next
大致就是这个样子了,我是手工写的,语法可能存在写错的,你自己适当修改一下,还是合并的那个,不明白具体是什么样子的,你可以参考上面思路自己修改了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询