vba 循环检测一列单元格并写入文件

从D3到D31(每两行合并,共15格),循环检测单元格是否为空,如果为空,则停止,如果不为空,则将单元格内容写入文件#1.拜托给出具体代码... 从D3到D31(每两行合并,共15格),循环检测单元格是否为空,如果为空,则停止,如果不为空,则将单元格内容写入文件#1.拜托给出具体代码 展开
 我来答
仙剑4之处
2014-10-27 · TA获得超过397个赞
知道小有建树答主
回答量:1269
采纳率:25%
帮助的人:242万
展开全部

我的思路也和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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
推荐于2016-10-22 · TA获得超过8615个赞
知道大有可为答主
回答量:3242
采纳率:66%
帮助的人:2964万
展开全部

代码完整一些:

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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6e017157
2014-10-27 · TA获得超过1046个赞
知道大有可为答主
回答量:2218
采纳率:50%
帮助的人:1284万
展开全部
哦?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
大致就是这个样子了,我是手工写的,语法可能存在写错的,你自己适当修改一下,还是合并的那个,不明白具体是什么样子的,你可以参考上面思路自己修改了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式