Vba 每100行数据创建一个文本文件
比如说:Vba 每100行数据创建一个文本文件,vba,excel,spread,Vba,Excel,Spread,比如说: 我在Excel电子表格中有1000行单独的信息。(1列,1000行) 我想将每100行保存为它自己的文件名。(workbook1.txt,workbook2.txt,workbook3.txt等) 目前,我手动执行此操作: 我将突出显示100行 我使用控件+C(复制) 然后Control+N(新建)创建新文件,然后Control+V(粘贴)然后Control+S保存文件, 使用Control+N时指定的默认名称命名文件,以便将其保存为workbook1,workbook2,workb
workbook1.txt
,workbook2.txt
,workbook3.txt
等)- 我将突出显示100行
- 我使用控件+C(复制)
然后Control+N(新建)创建新文件,然后Control+V(粘贴)然后Control+S保存文件,
使用Control+N时指定的默认名称命名文件,以便将其保存为
,workbook1
,workbook2
workbook3
是否可以自动执行此过程,可能是bat文件或其他什么?如果您可以访问Linux系统,则有一个名为“split”的命令行实用程序,它可以执行以下操作: 将文本文件拆分为N个文件(行、字节、字)
cat original_file.csv | split-l 1000您可以使用简单的VBA脚本,如:
Dim counter As Integer
counter = 0
Do While counter < 10
Range("A1:A100").Select
Selection.Copy
Sheets("Sheet2").Select
ActiveSheet.Paste
ActiveWorkbook.SaveAs Filename:="C:\test" & CStr(counter) & ".txt", _
FileFormat:=xlTextMSDOS, CreateBackup:=False
Sheets("Sheet1").Select
Range("A101:A1000").Select
Selection.Cut
Range("A1").Select
ActiveSheet.Paste
counter = counter + 1
Loop
Dim计数器为整数
计数器=0
当计数器<10时执行此操作
范围(“A1:A100”)。选择
选择,复制
图纸(“图纸2”)。选择
活动表。粘贴
ActiveWorkbook.SaveAs文件名:=“C:\test”&CStr(计数器)和“.txt”_
FileFormat:=xlTextMSDOS,CreateBackup:=False
图纸(“图纸1”)。选择
范围(“A101:A1000”)。选择
选择,剪
范围(“A1”)。选择
活动表。粘贴
计数器=计数器+1
环
另存为xlTextMSDOS只保存活动工作表,这样您就不必创建新工作簿。有时,将所有内容复制到新工作表并删除不希望保留的内容会更容易。A to no位置将打开一个新的空白工作簿,其中只有一个工作表;那是原件的复印件
Sub split_100()
Dim i As Long, lr As Long, fn As String
'Application.ScreenUpdating = false 'uncomment when it works right for you
With Worksheets("Sheet1")
lr = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lr Step 100
.Copy
With ActiveWorkbook
With .Worksheets(1)
If i > 1 Then _
.Cells(1, 1).Resize(i - 1, 1).EntireRow.Delete
.Cells(101, 1).Resize(lr, 1).EntireRow.Delete
End With
fn = Environ("TMP") & "\Workbook" & Format(Int(i / 100) + 1, "00") 'no extension; leave that for xlTextWindows
'Application.DisplayAlerts = False 'uncomment to avoid overwrite warnings
.SaveAs Filename:=fn, FileFormat:=xlTextWindows
.Close SaveChanges:=False
End With
Next i
End With
Application.ScreenUpdating = True
End Sub
在删除不需要的内容后,a将循环带到a。有许多TXT格式可供选择,上面使用的是xlFileFormat