永发信息网

excel批量生成文件

答案:2  悬赏:0  手机版
解决时间 2021-02-25 18:13
excel批量生成文件
最佳答案
下面是用VBA自定义函数,可以在Excel工作表中用函数MyCreateFile来创建文件。
用法举例:=myCreateFile("D:\Documents\txt",B5&".txt",B5)
第一个参数是路径,第二个参数是文件名,第三个参数是文件内容。
如果文件已存在,会返回文件已存在,不覆盖文件。
由于每次运算公式时都会调用函数创建文件,建议使用时小心。
Function MyCreateFile(ByVal Path As String, ByVal Filename As String, ByVal Content As String)
If Right(Path, 1) <> "\" Then Path = Path + "\"
If Dir(Path + Filename) <> "" Then
CreateFile = "文件已存在"
Exit Function
End If
Open Path + Filename For Output As #1
Print #1, Content
Close #1
MyCreateFile = "文件'" + Path + Filename + "'创建成功"
End Function追问是不是将函数定义复制到vba的模块中,再在某个单元格里输入myCreateFile("D:\Documents\txt",B5&".txt",B5) 再按enter执行?
我是这样做的,但报错,公式中某个值是错误类型。
是我的步骤有错吗?追答复制到VBA模块没错,但输入公式后,要注意修改参数,myCreateFile("D:\Documents\txt",B5&".txt",B5)有3个参数,其中:
"D:\Documents\txt" :需要修改为你实际硬盘里面要保存的文件路径
B5&".txt" :需要修改为你实际的单元格,比如上面例子“小红”为B2单元格,则改为B2
B5:需要修改为你实际需要生成的文件内容,比如上面例子“小红”为B2单元格,则改为B2。实际上你还可以在增加其他内容,比如 "姓名为"&B2,之类的。追问嗯,我知道。但好像函数本身有问题---我也不太清楚
我找到了其他的方法:

Sub test()
Dim arr
arr = Range("a1:b" & [a60000].End(3).Row)
For i = 1 To [a60000].End(3).Row
Open ThisWorkbook.Path & "\" & Cells(i, 1) & ".txt" For Output As #i
Print #i, Cells(i, 2)
Close #i
Next
End Sub

非常感谢
全部回答
pascal_xie163 这位仁兄 说的对 就这样 可行 虽然看起来有点复杂 你只要在VBA中直接复制即可
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
新乡今年什么时候会下雪
豪爵太子摩托车机头是401好还是157好还是哪种
求服装设计主题名字,主色为橙色 黑色 土黄色
努比亚z17mini系统怎么样
银行系统维护可以去柜台取钱吗
求解!!想进普华永道,大学一本院校,非985/
高端女装店名
(26分)理想作为一种精神现象,是人类社会实
海鲜约会朝阳沟旗舰店地址在什么地方,想过去
追我的男生说要消失几周请我原谅是什么意思
去财政局买账簿需要带哪些材料
京山县石龙镇血吸虫病防治站我想知道这个在什
重庆去九寨沟要多久
一块九v电池大概能用多久
极光风扇led风扇有什么区别
推荐资讯
碧湖超市在哪里啊,我有事要去这个地方
归逸门地址在哪,我要去那里办事
您好!请问Excel中的单价删除掉怎么保存好总
心非凡发艺工作室地址在哪,我要去那里办事,
喜得龙鞋店地址在哪,我要去那里办事
急问:湖南友谊咨询集团怎么样?待遇如何?公
患者,女,34岁,反复腹泻2月,近半月呈黏液
广安有没有到江北机场的大巴?时间是多少呢?
青年路二段地址在哪,我要去那里办事
呜鹿地址有知道的么?有点事想过去
更换考勤系统需要连考勤机一起更换么
没有结婚证离婚,在一起20多年了,现在要离婚
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?