Excel批量一次性处理xls文件VBA制盘TXT①

Sub 批量一次处理全部Excel文件() '批量一次
Dim wb As Workbook
Dim ws As Worksheet
Dim lngRow          As Long
Dim lngCol          As Long
Dim strContent      As String
Dim EndRow As Single
Dim i&, j&, k&, m$, l$
Dim fn, fp
fp = ThisWorkbook.Path & "\1待处理文件\"
fn = Dir(fp & "*.xl*")
Application.DisplayAlerts = False
Application.ScreenUpdating = True
On Error Resume Next
Do While fn <> ""
Set wb = Workbooks.Open(fp & fn)
For Each ws In wb.Worksheets
With ws
On Error Resume Next
 ActiveWorkbook.Sheets(1).Range("A:D").Copy
ThisWorkbook.Sheets(17).Range("A:D").PasteSpecial Paste:=xlPasteValues
For i = 250 To 1 Step -1
 If ThisWorkbook.Sheets(17).Cells(i, 4).Text Like "0" Or ThisWorkbook.Sheets(17).Cells(i, 4).Text Like "" Then
 Cells(i, 4).EntireRow.Delete
 End If
Next
For i = 250 To 1 Step -1'此处是行数250 根据需要设定 可再引入其他计数 但出于防止逻辑错误 直接根据项目设置合理行数
 If ThisWorkbook.Sheets(17).Cells(i, 3).Text Like "62*" Or ThisWorkbook.Sheets(17).Cells(i, 3).Text Like "8001000*" Then
 Else
 Cells(i, 3).EntireRow.Delete
 End If
 Next
ThisWorkbook.Sheets(17).Columns("D:D").NumberFormatLocal = "G/通用格式"
ThisWorkbook.Sheets(17).Columns("A:D").Select
Selection.Replace What:=" ", Replacement:=""
j = Application.WorksheetFunction.Count(ThisWorkbook.Sheets(17).[D:D])
For k = 1 To j
Cells(k, 1) = k
Next k
ActiveWorkbook.Sheets(1).Range("A1").Copy
ThisWorkbook.Sheets(17).Range("I1").PasteSpecial Paste:=xlPasteValues
Selection.Paste
ThisWorkbook.Sheets(17).Range("I1").Select
ThisWorkbook.Sheets(17).Range("I1").Replace What:=" ", Replacement:=""
ThisWorkbook.Sheets(17).Range("I1").Replace What:="要替换的文", Replacement:=""
l = ThisWorkbook.Sheets(17).Shapes.Range(Array("TextBox 1")).TextFrame.Characters.Caption
Open ThisWorkbook.Path & "\2TXT\" & ThisWorkbook.Sheets(17).Range("I1").Text & ".txt" For Output As #1
m = Application.WorksheetFunction.Count(ThisWorkbook.Sheets(17).[A:A])
For lngRow = 1 To m - 1
strContent = ThisWorkbook.Sheets(17).Cells(lngRow, 1).Text & "|" & ThisWorkbook.Sheets(17).Cells(lngRow, 2).Text & "|" & ThisWorkbook.Sheets(17).Cells(lngRow, 3).Text & "|" & ThisWorkbook.Sheets(17).Cells(lngRow, 4).Text
strContent = strContent & vbCrLf
Print #1, strContent;
Next
strContent = ThisWorkbook.Sheets(17).Cells(m, 1).Text & "|" & ThisWorkbook.Sheets(17).Cells(m, 2).Text & "|" & ThisWorkbook.Sheets(17).Cells(m, 3).Text & "|" & ThisWorkbook.Sheets(17).Cells(m, 4).Text
Print #1, strContent;
Close #1
End With
Next ws
wb.Close savechanges:=False
fn = Dir()
Loop
Application.DisplayAlerts = True
ThisWorkbook.Sheets(17).Shapes.Range(Array("TextBox 1")).Select
Selection.Text = ThisWorkbook.Sheets(17).Range("I1").Text
ThisWorkbook.Sheets(17).Range("I1").Select
Selection.ClearContents
End Sub

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值