txt文件分割(一个大txt文件可按字数分割为若干小文件)vba实例

当txt文本文件字数比较多时,读写很不方便,这时我们可借助以下excel vba代码实现txt文件的分割,分割后每个文件的字数及总文件的路径及全名只需在代码中替换即可。

复制代码
Sub split_txtfile()
Dim bigfile As String, smallfile As String
Dim current_line As String, all_line As String
Dim file_count As Integer, wordcount As Integer
wordcount = 20000 ''分割后每个文件的字节数,可自己修改
''总文件的完整路径及名称需在下行代码进行替换
''以下为调用excel内置api
On Error Resume Next
With Application.FileDialog(msoFileDialogOpen)
    .Title = "请选择你要的文件"
    .AllowMultiSelect = True
    .InitialFileName = "C:\Users\Administrator\Desktop\"
    .Filters.Clear
    .Filters.Add "all files", "*.txt,*.xls,*.xlsx,*.dwg"
    If .Show = True Then
    Set gof = .SelectedItems
    bigfile_fullname = gof.Item(1)
 
    Else: Exit Sub
    End If
End With
''上面从on error resume next 行开始到此行为excel内置打开对话框的函数,如果不用excel vba,可删除上面代码,
''手工录入文件路径及全程 bigfile_fullname =  "C:\Users\Administrator\Desktop\*.txt"
Open bigfile_fullname For Input As #1
Do While Not EOF(1)
  Line Input #1, current_line
  If all_line <> "" Then
       all_line = all_line & vbCrLf & current_line
   Else
      all_line = current_line
   End If
  
  If Len(all_line) > wordcount Then
    file_count = file_count + 1
    small_file = Left(bigfile_fullname, Len(bigfile_fullname) - 4) & "_" & file_count & ".txt"
    Open small_file For Output As #2
    Print #2, all_line
    Close #2
    all_line = ""
  End If

Loop
If all_line <> "" Then
    file_count = file_count + 1
    small_file = Left(bigfile_fullname, Len(bigfile_fullname) - 4) & "_" & file_count & ".txt"
    Open small_file For Output As #2
    Print #2, all_line
    Close #2
    all_line = ""
End If
 Close #1
 MsgBox "txt分割已完成" & Space(50) & vbCr & _
 "vba代码二次开发qq:443440204", vbInformation, "版权所有qq:443440204"
End Sub

本文附有xlsm文件可供下载参考使用。

相关推荐
聆风吟º1 分钟前
【Python编程日志】Python基础语法:常量 | 表达式 | 变量
开发语言·python·变量·常量·表达式
努力发光的程序员2 分钟前
面试官与程序员谢飞机的3轮Java大厂面试问答实录:涵盖Spring Boot、微服务与数据库技术
java·jvm·spring boot·redis·面试·hibernate·microservices
橙淮3 分钟前
并发编程(四)
java·jvm
QiLinkOS4 分钟前
发明人与专利价值共生逻辑
c语言·数据结构·c++·人工智能·单片机·嵌入式硬件·算法
凯瑟琳.奥古斯特6 分钟前
10道数据库原理精选题
开发语言·数据库·职场和发展·数据库开发
z落落7 分钟前
C# Stack栈 / Queue队列+所有集合 终极一页汇总(全覆盖、零遗漏)
java·开发语言·c#
skywalk81638 分钟前
设计和实现一门中文编程语言,有什么工具可以使用吗?是不是ANTLR 和LLVM都可以使用?Racket恐怕不适用吧
开发语言·编程
计算机安禾16 分钟前
【算法分析与设计】第21篇:回溯法的状态空间树与剪枝函数设计
大数据·人工智能·算法·机器学习·数据挖掘·剪枝
磊 子17 分钟前
STL之set以及set和map区别
开发语言·c++·算法
Halo_tjn22 分钟前
NIO 技术的使用
java·开发语言·nio