在excel中,如何用VBA将每列数据的输出为一个独立的文本文件txt

我根据按每行数据的输出为一个独立的文本文件的代码稍微改了一下,如下PrivateSubexport()Application.ScreenUpdating=False'关... 我根据按每行数据的输出为一个独立的文本文件的代码稍微改了一下,如下
Private Sub export()
Application.ScreenUpdating = False '关闭屏幕刷新
Path = "E:\export"
Dim nro&, nco& '定义区域变量
nco = Cells(1, Columns.Count).End(3).Column
For i = 1 To nco '在行中进行循环
nro = Cells(Rows.Count, i).End(1).Row
Open Path & "\file" & i & ".txt" For Output As #1
Print #1, Join(Application.Transpose(Application.Transpose(Range(Cells(1, i), Cells(nro, i)))), ",")
Close #1 '关闭文本
Next '下次循环
Application.ScreenUpdating = True '开启屏幕刷新,与前对应
MsgBox "导出完成" '完成友好提示
End Sub
报错:运行时错误5 无效的过程调用参数
求问,应该怎么改呢?。
不太懂end()里面是什么意思,可以解释一下吗?
展开
 我来答
mzz9060
2017-08-12 · TA获得超过1321个赞
知道小有建树答主
回答量:773
采纳率:84%
帮助的人:192万
展开全部

答:end()里面的数字是简写的,这样很不好辨认。强烈建议使用命名参数。

1、2、3、4代表xlToLeft、xlToRight、xlUp、xlDown。也就是点一个单元格,然后按“Ctrl+箭头”后指向的单元格。

我修改了这段代码,已验证了能正确导出。

Private Sub export()
    Application.ScreenUpdating = False
    Path = "E:\export"
    Dim nro&, nco&
    nco = Cells(1, Columns.Count).End(xlToLeft).Column
    For i = 1 To nco
        nro = Cells(Rows.Count, i).End(xlUp).Row
        Open Path & "\file" & i & ".txt" For Output As #1
        For Each cell In Range(Cells(1, i), Cells(nro, i))
            Print #1, cell
        Next
        Close #1
    Next
    Application.ScreenUpdating = True
    MsgBox "导出完成"
End Sub


追问
先非常感谢。我用你的调试了,能用。但是中间是以回车间隔的,我想以逗号相隔,不是每个都换行,可以吗?。。多谢
追答
可以的,修改后的程序如下
Private Sub export()
Application.ScreenUpdating = False
Path = "E:\export"
Dim nro&, nco&
nco = Cells(1, Columns.Count).End(xlToLeft).Column
For i = 1 To nco
nro = Cells(Rows.Count, i).End(xlUp).Row
Open Path & "\file" & i & ".txt" For Output As #1
Print #1, Join(Application.Transpose(Range(Cells(1, i), Cells(nro, i))), ",")
Close #1
Next
Application.ScreenUpdating = True
MsgBox "导出完成"
End Sub
skyzxh

2017-08-12 · 知道合伙人软件行家
skyzxh
知道合伙人软件行家
采纳数:2623 获赞数:8343
毕业于中科院,硕士,30年工程从业经验。现任公司技术负责。

向TA提问 私信TA
展开全部
end(3) 和下面那个 end(1) 对调一下
追问
对调了,还是报相同的错误。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式