ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1574|回复: 6

关于CSV转换为TXT文件的问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-12-9 13:15 | 显示全部楼层 |阅读模式
小弟现在的需求是把csv文件全自动批量转换为txt文件,小弟已经把目标文件和转换后需要的例子上传了,请问大神们如何解决?谢谢各位 test.rar (58.35 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

发表于 2017-12-9 23:24 | 显示全部楼层
要求很简单,就是将csv文件(其内容就是文本)中的逗号替换成空格,对吗?(后面的文件格式与你的示例不一样)
如果是这样的话把csv文件当文本文件处理就可以了。
  1. Option Explicit
  2. Sub BATCHcTXT()
  3.     Dim Pth, FileName, TxtFileName
  4.     Dim oTxt, sTxt, t
  5.     Dim fso, oFile, sFile As Object
  6.     t = Timer
  7.     Set fso = CreateObject("Scripting.FileSystemObject")
  8.     'Pth = ThisWorkbook.PAth & ""
  9.     Pth = fso.GetFolder(".") & ""
  10.     FileName = Dir(Pth & "*.csv")
  11.     While FileName <> ""
  12.         Set oFile = fso.OpenTextFile(FileName, 1)  '读取csv文件
  13.         oTxt = oFile.readall
  14.         oFile.Close
  15.         Set oFile = Nothing
  16.         sTxt = Replace(oTxt, ",", " ") '将逗号替换为空格
  17.         TxtFileName = Replace(LCase(FileName), ".csv", ".txt")
  18.         Set sFile = fso.CreateTextFile(Pth & TxtFileName) '创建txt文件
  19.         sFile.write sTxt  '将替换后的内容写进新建的txt文件
  20.         sFile.Close
  21.         Set sFile = Nothing
  22.         FileName = Dir()
  23.     Wend
  24.     Set fso = Nothing
  25.     Application.StatusBar = "用时: " & Timer - t
  26. End Sub
复制代码

批量替换文本字符.zip

7.37 KB, 下载次数: 9

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-12-10 08:49 | 显示全部楼层
xiaocake 发表于 2017-12-9 23:24
要求很简单,就是将csv文件(其内容就是文本)中的逗号替换成空格,对吗?(后面的文件格式与你的示例不一样)
...

非常感谢您的回答,可是在我这里出错了,我已经按照您的说明把您给我的附件放到了存放csv文件的文件夹下,但是执行以后在 读取csv文件 那一行出错了 说是文件未找到。
ps、我把path改成了固定的存放csv文件的路径,应该没错吧。。。

TA的精华主题

TA的得分主题

发表于 2017-12-10 12:48 来自手机 | 显示全部楼层
Set oFile = fso.OpenTextFile(FileName, 1)

TA的精华主题

TA的得分主题

发表于 2017-12-10 12:51 来自手机 | 显示全部楼层
xiaocake 发表于 2017-12-10 12:48
Set oFile = fso.OpenTextFile(FileName, 1)

我运行是正常的。
你把 Set oFile = fso.OpenTextFile(FileName, 1)这句改为
Set oFile = fso.OpenTextFile(Pth & FileName, 1)

TA的精华主题

TA的得分主题

发表于 2017-12-10 19:19 | 显示全部楼层
再给你来个vbs版本的,处理思路一样的,但是不需要借助Excel了。

VBS批量替换文本中指定字符.zip

976 Bytes, 下载次数: 5

TA的精华主题

TA的得分主题

发表于 2018-1-8 09:38 来自手机 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-26 11:38 , Processed in 0.059629 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表