excel读取文件(txt)形式打开,然后用特定的字符分割并保存
{:1_937:} 大神们,小白又遇到问题了,这次是编写一个vba程序,主要功能是将同事导出的文件在excel中用文本文件的形式打开,然后自动分割后以该文件的%后面的后5位字符作为文件名保存文件是类似于下面这样的
%
O0005fafeafgweer52352563472363467547568u6757978903745623463463%
O0006gergsrgert34534534dfbdfyhew634yerbhdfshberyeryhbdfbnsdtgwerdfnaerty3wefvert6234yfyuj67EDGvabtfQ%
O0013VBESTERTYERBHDFHRTTY345WERGERT34754U8FGBHSDR34Y6GYERH547YRTHBY547856I9Y73476%
O0009VSDTGWERGSDFHN54E654UJHNRTGFMNDRTUY7RDF NBXRTYHRTN XRHBWEBHRTDUY54U8UHBE DRF
当然涉及到数据更多,然后有的可能是%后面是回车再加数据的
然后需要我做的是这样的状态
上面两个功能我已经成功了,现在就是分割文件并保存这里出错了
Private Sub CommandButton3_Click()
Dim TextFilePath As String
Dim TextFile As Integer
Dim FileContent As String
Dim FileLines() As String
Dim SplitLine() As String
Dim i As Long
'获取要导入的文件路径
TextFilePath = Cells(1, 2)
'打开文件
TextFile = FreeFile
Open TextFilePath For Input As TextFile
'读取文件内容
FileContent = Input(LOF(TextFile), TextFile)
'关闭文件
Close TextFile
'以%为分隔符拆分文件内容
FileLines = Split(FileContent, Cells(3, 2))
'逐行写入并保存文件
For i = 0 To UBound(FileLines)
'以%后面5个字符为文件名
SplitLine = Split(FileLines(i), vbCrLf)
Open Cells(2, 2) & Right(SplitLine(0), 5) & ".txt" For Output As TextFile
Print #TextFile, FileLines(i)
Close TextFile
Next i
'提示导入完成
MsgBox "导入完成!"
End Sub
:'(weeqw有没有大神知道问题在哪 太棒了感谢
谢楼主分享!成品请发个 Private Sub CommandButton3_Click()
Dim TextFilePath As String
Dim TextFile As Integer
Dim FileContent As String
Dim FileLines() As String
Dim SplitLine() As String
Dim i As Long
'获取要导入的文件路径
TextFilePath = Cells(1, 2)
'打开文件
TextFile = FreeFile
Open TextFilePath For Input As TextFile
'读取文件内容
FileContent = Input(LOF(TextFile), TextFile)
'关闭文件
Close TextFile
'以%为分隔符拆分文件内容
FileContent = Replace(Replace(FileContent, Chr(10), ""), Chr(13), "")
FileLines = Split(FileContent, Cells(3, 2))
'逐行写入并保存文件
For i = 1 To UBound(FileLines)
'以%后面5个字符为文件名
Open Cells(2, 2) & Left(FileLines(i), 5) & ".txt" For Output As #1
Print #1, FileLines(i)
Close #1
Next i
'提示导入完成
MsgBox "导入完成!"
End Sub
youbudenibuxiao 发表于 2023-5-5 19:12
Private Sub CommandButton3_Click()
Dim TextFilePath As String
Dim Tex ...
:'(weeqw谢谢,后来忙别的去了,明天上班了试下 能不能再讲细一点,这东西到底有什么用处呢? 还能这样玩啊。大佬啊 youbudenibuxiao 发表于 2023-5-5 19:12
Private Sub CommandButton3_Click()
Dim TextFilePath As String
Dim Tex ...
谢谢大佬,但是还是出现了问题,在分隔分本的时候,因为是以%作为分割的,所以导致最后保存后%不见了, youbudenibuxiao 发表于 2023-5-5 19:12
Private Sub CommandButton3_Click()
Dim TextFilePath As String
Dim Tex ...
原始和后来的 ,文件名是对的,但是内容中的那个%是需要的,我是在写入文件时直接加那个%号么 cherrycdh 发表于 2023-5-6 13:53
原始和后来的 ,文件名是对的,但是内容中的那个%是需要的,我是在写入文件时直接加那个%号么
{:1_893:}{:1_1:}还在不断学习中~
Private Sub CommandButton3_Click()
Dim TextFilePath As String
Dim TextFile As Integer
Dim FileContent As String
Dim FileLines() As String
Dim SplitLine() As String
Dim i As Long
'获取要导入的文件路径
TextFilePath = Cells(1, 2)
'打开文件
TextFile = FreeFile
Open TextFilePath For Input As TextFile
'读取文件内容
FileContent = Input(LOF(TextFile), TextFile)
'关闭文件
Close TextFile
'以%为分隔符拆分文件内容
FileContent = Replace(Replace(FileContent, Chr(10), ""), Chr(13), "")
FileLines = Split(FileContent, Cells(3, 2))
'逐行写入并保存文件
For i = 1 To UBound(FileLines)
'以%后面5个字符为文件名
Open Cells(2, 2) & Left(FileLines(i), 5) & ".txt" For Output As #1
Print #1, "%" & FileLines(i)
Close #1
Next i
'提示导入完成
MsgBox "导入完成!"
End Sub
页:
[1]
2