ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求助,文本内容汇总到EXCEL里

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-8-8 13:54 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
求助,我想把多个文本文件内容汇总到EXCEL里。A列文本内容里的零件名,B列文本文件名称,D列开始文本里的MAX,MIN值,依次向右排。

002.zip

11.22 KB, 下载次数: 23

TA的精华主题

TA的得分主题

发表于 2024-8-8 14:48 | 显示全部楼层
  1. Sub 读取write写入的文本()
  2.     Dim mFile$, tmPstr$, reGxp As Object, Str1$, tmPobj As Object, LJstr$, sH As Worksheet, tmProw%
  3.     Set sH = ActiveSheet
  4.     sH.UsedRange.ClearContents
  5.     tmProw = 0
  6.     Set reGxp = CreateObject("vbScript.regExp")
  7.     reGxp.Global = True
  8.     reGxp.Pattern = "(\-?\d+(\.\d+)?\s+){4}(\-?\d+(\.\d+)?)\s+(\-?\d+(\.\d+)?)"
  9.     mFile = Dir(ThisWorkbook.Path & "\*.txt")
  10.     Do While mFile <> ""
  11.         Open ThisWorkbook.Path & "" & mFile For Input As #1
  12.             Str1 = ""
  13.             Do While Not EOF(1)
  14.                 Line Input #1, tmPstr
  15.                 If InStr(tmPstr, "零件名: ") Then LJstr = Right(tmPstr, Len(tmPstr) - 4): Str1 = LJstr & Chr(10) & mFile
  16.                 If reGxp.test(tmPstr) Then
  17.                     Set tmPobj = reGxp.Execute(tmPstr)
  18.                     Str1 = Str1 & Chr(10) & tmPobj(0).submatches(2) & Chr(10) & tmPobj(0).submatches(4)
  19.                 End If
  20.             Loop
  21.             Close #1
  22.             Trr = Split(Str1, Chr(10))
  23.             tmProw = tmProw + 1
  24.             sH.Cells(tmProw, 1).Resize(1, UBound(Trr) + 1) = Trr 'Application.WorksheetFunction.Transpose(Trr)
  25.      mFile = Dir
  26.      Loop
  27.      MsgBox "Done!"
  28. End Sub
复制代码

期等汇总后效果.rar

15.01 KB, 下载次数: 16

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-8 15:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-8-8 15:18 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Sub 提取数据()
Application.ScreenUpdating = False
Dim ar As Variant
Dim arr()
Set sh = ThisWorkbook.ActiveSheet
ReDim arr(1 To 90000, 1 To 200)
f = Dir(ThisWorkbook.Path & "\*.txt")
Do While f <> ""
    If f <> ThisWorkbook.Name Then
        Open ThisWorkbook.Path & "\" & f For Input As #1 ''打开选择的文本文件
        n = n + 1
        ar = Split(StrConv(InputB(LOF(1), 1), vbUnicode), vbCrLf) ''把文本文件的数据赋值给数组lines
        k = UBound(ar) ' + 1 '文件的行数
        '遍历每一行
        y = 3
        arr(n, 1) = Replace(ar(3), "零件名: ", "")
        arr(n, 2) = Replace(f, ".TXT", "")
        For i = 9 To k ''循环数组行
            If Left(ar(i), 1) <> "" Then
                If InStr(ar(i), "MIN") = 0 Then
                    rr = Split(ar(i), Chr(32))
                    m = 0
                    ReDim br(1 To UBound(rr) + 1)
                    For s = 0 To UBound(rr)
                        If rr(s) <> "" Then
                            If IsNumeric(rr(s)) Then
                                m = m + 1
                                br(m) = rr(s)
                            End If
                        End If
                    Next s
                    If m > 1 Then
                        y = y + 2
                        arr(n, y - 1) = br(m - 1)
                        arr(n, y) = br(m)
                    End If
                End If
            End If
        Next i
        Close #1 ''关闭打开的文本文件
    End If
f = Dir
Loop
With sh
    .[a1].CurrentRegion.Offset(2).Borders.LineStyle = 0
    .[a1].CurrentRegion.Offset(2) = Empty
    .[a3].Resize(n, 39) = arr
    .[a3].Resize(n, 39).Borders.LineStyle = 1
End With
Application.ScreenUpdating = True
MsgBox "ok!"
End Sub

TA的精华主题

TA的得分主题

发表于 2024-8-8 15:19 | 显示全部楼层
002.rar (22.21 KB, 下载次数: 7)

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-8 15:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

这样汇总出来的数值是文本格式,能转成数字格式吗?

TA的精华主题

TA的得分主题

发表于 2024-8-8 15:32 | 显示全部楼层
附件供参考。。。

002.zip

21.84 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2024-8-8 15:33 | 显示全部楼层
参与一下。。。

  1. Sub ykcbf()              '//2024.8.8
  2.     Set fso = CreateObject("scripting.filesystemobject")
  3.     Application.ScreenUpdating = False
  4.     Set sh = ThisWorkbook.Sheets("Sheet1")
  5.     p = ThisWorkbook.Path & ""
  6.     ReDim brr(1 To 1000, 1 To 100)
  7.     On Error Resume Next
  8.     For Each f In fso.GetFolder(p).Files
  9.         If LCase$(f.Name) Like "*.txt" Then
  10.             fn = fso.GetBaseName(f)
  11.             m = m + 1
  12.             Set wb = Workbooks.Open(f, 0)
  13.             With wb.Sheets(1)
  14.                 arr = .UsedRange
  15.                 wb.Close False
  16.             End With
  17.             c = 3
  18.             For i = 2 To UBound(arr) - 1
  19.                 If InStr(arr(i, 1), "零件") Then brr(m, 1) = Split(arr(i, 1), ":")(1)
  20.                 brr(m, 2) = f.Name
  21.                 If InStr(arr(i, 1), "MAX") And InStr(arr(i + 1, 1), "DIM") = 0 Then
  22.                     st = WorksheetFunction.Trim(arr(i + 1, 1))
  23.                     st = Split(st)
  24.                     If st(5) <> Empty Then
  25.                         c = c + 1
  26.                         brr(m, c) = st(5)
  27.                         c = c + 1
  28.                         brr(m, c) = st(6)
  29.                     End If
  30.                 End If
  31.             Next
  32.             Max = IIf(Max < c, c, Max)
  33.         End If
  34.     Next f
  35.     With sh
  36.         .UsedRange.Offset(2) = ""
  37.         .[a3].Resize(m, Max) = brr
  38.     End With
  39.     Application.ScreenUpdating = True
  40.     MsgBox "OK!"
  41. End Sub

复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-8-8 15:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

非常赞,格式也整理的很漂亮

TA的精华主题

TA的得分主题

发表于 2024-8-8 15:40 | 显示全部楼层
菊子红了 发表于 2024-8-8 15:29
这样汇总出来的数值是文本格式,能转成数字格式吗?

设置格式为常规,全部乘1就行了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-18 10:47 , Processed in 0.047309 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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