vba excel 导出 txt 在excel中某列有1000行,其中有十几个空行,要求每隔3个空行导出一个txt 文件

 我来答
咕咕代码
2013-08-23 · 超过35用户采纳过TA的回答
知道答主
回答量:111
采纳率:0%
帮助的人:89.1万
展开全部
Sub main()
    Dim n As Integer
    Dim i As Integer
    Dim St As Integer, En As Integer
    Dim Mark As Integer
    n = [a65536].End(xlUp).Row
    Mark = 0
    St = 1
    For i = 1 To n
        If Cells(i, "a") = "" Then
            If Cells(i + 1, "a") = "" And Cells(i + 2, "a") = "" Then
                If Mark > 0 Then St = En + 4
                En = i - 1
                Mark = Mark + 1
                Call SaveTxt(St, En, Mark)
            End If
        End If
    Next
    St = En + 4
    En = n
    Call SaveTxt(St, En, Mark + 1)
End Sub
Sub SaveTxt(ByVal S As Integer, ByVal E As Integer, ByVal M As Integer)
    Dim Path As String
    Dim i As Integer
    Dim Str As String
    Path = ThisWorkbook.Path & "\" & Left(ThisWorkbook.Name, _
        Application.Find(".", ThisWorkbook.Name) - 1) & "_" & M & ".txt"
    Open Path For Output As #1
    For i = S To E
        Str = Cells(i, "a")
        Print #1, Str
    Next
    Close #1
End Sub
更多追问追答
追问
代码很好,但是没有完全解决问题。不是连续出现3个空行就转存,而是累计出现3个空行就转存一次
追答

由于字数限制,我只发出来主程序的修改后的代码,子程序没有改动,你copy到后面好了。

Sub main()
    Dim n As Integer
    Dim i As Integer
    Dim St As Integer, En As Integer
    Dim Mark As Integer
    n = [a65536].End(xlUp).Row
    Mark = 0
    St = 1
    i = 1
    Do While i <= n
        If Cells(i, "a") = "" Then
            If Cells(i, "a").End(xlDown).Row - i > 2 Then
                If Mark > 0 Then St = Cells(En, "a").End(xlDown).Row
                En = i - 1
                Mark = Mark + 1
                Call SaveTxt(St, En, Mark)
                i = Cells(i, "a").End(xlDown).Row
            End If
        End If
        i = i + 1
    Loop
    St = Cells(En, "a").End(xlDown).Row
    En = n
    Call SaveTxt(St, En, Mark + 1)
End Sub
cm2870125
2013-08-23 · TA获得超过170个赞
知道答主
回答量:37
采纳率:100%
帮助的人:10万
展开全部
1000行,十几个空行,用交互方式更快.
如果非要编程,我的做法是逐行逐列读取进行字符连接,每行结束加一个换行chr(10)或回车chr(13)这个写一个双重循环就能实现了,至于每隔3个空行增加一个空行计数。
追问
求代码
求代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式