ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] TXT批量单独VBA制盘参考(2)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-4-13 23:51 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Private Sub CommandButton4_Click() '批量一次OK—————4

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

      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:=""

ThisWorkbook.Sheets(17).Range("I1").Replace What:="大坝镇", Replacement:=""

ThisWorkbook.Sheets(17).Range("I1").Replace What:="教师", Replacement:=""

ThisWorkbook.Sheets(17).Range("I1").Replace What:="初级中学", Replacement:="中学"

ThisWorkbook.Sheets(17).Range("I1").Replace What:="学校小学", Replacement:="小学"

ThisWorkbook.Sheets(17).Range("I1").Replace What:="小学学校", Replacement:="小学"

ThisWorkbook.Sheets(17).Range("I1").Replace What:="学校", Replacement:="小学"

ThisWorkbook.Sheets(17).Range("I1").Replace What:="月个*", Replacement:="月个人所得税"

ThisWorkbook.Sheets(17).Range("I1").Replace What:="个人*", Replacement:="个人所得税"

ThisWorkbook.Sheets(17).Range("I1").Replace What:="个税*", Replacement:="个人所得税"

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























Private Sub CommandButton5_Click() '批量提取数据————5

Dim wb As Workbook

Dim ws As Worksheet

Dim fn, fp

Dim i&, j&, k&, n&, m&, l&, o&

fp = ThisWorkbook.Path & "\1待处理文件\"

fn = Dir(fp & "*.xl*")

n = 2

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

      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

Columns("D:D").NumberFormatLocal = "G/通用格式"

Columns("A:D").Select

Selection.Replace What:=" ", Replacement:=""

For k = 1 To j

Cells(k, 1) = k

Next

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:=""

ThisWorkbook.Sheets(17).Range("I1").Replace What:="大坝镇", Replacement:=""

ThisWorkbook.Sheets(17).Range("I1").Replace What:="教师", Replacement:=""

ThisWorkbook.Sheets(17).Range("I1").Replace What:="中学*", Replacement:="中学"

ThisWorkbook.Sheets(17).Range("I1").Replace What:="学校*", Replacement:="小学"

ThisWorkbook.Sheets(17).Range("I1").Replace What:="小学*", Replacement:="小学"



ThisWorkbook.Sheets(16).Cells(n, 13) = ThisWorkbook.Sheets(17).Range("I1")

ThisWorkbook.Sheets(16).Cells(n, 15) = Application.WorksheetFunction.Sum(ThisWorkbook.Sheets(17).[D:D])

ThisWorkbook.Sheets(16).Cells(n, 14) = Application.WorksheetFunction.Count(ThisWorkbook.Sheets(17).[D:D])

End With

Next ws

ActiveWorkbook.Saved = True

wb.Close savechanges:=True

fn = Dir()

n = n + 1

Loop

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



ThisWorkbook.Sheets(16).Range("I2:L30").Copy

ThisWorkbook.Sheets(17).Range("F10").PasteSpecial Paste:=xlPasteValues

ThisWorkbook.Sheets(17).Range("F9") = "检索"

ThisWorkbook.Sheets(17).Range("G9") = "单位"

ThisWorkbook.Sheets(17).Range("H9") = "人数"

ThisWorkbook.Sheets(17).Range("I9") = "金额"

End Sub

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 15:54 , Processed in 0.025017 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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