excel批量生成文件
答案:2 悬赏:0 手机版
解决时间 2021-02-25 18:13
- 提问者网友:佞臣
- 2021-02-24 21:39
excel批量生成文件
最佳答案
- 五星知识达人网友:鸠书
- 2021-02-24 22:27
下面是用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
非常感谢
用法举例:=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
非常感谢
全部回答
- 1楼网友:北方的南先生
- 2021-02-24 22:37
pascal_xie163 这位仁兄 说的对 就这样 可行 虽然看起来有点复杂 你只要在VBA中直接复制即可
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯