• VBA 将TXT的多行文本文件进行处理,以ID为单位处理成 一行


    VBA 将TXT的多行文本文件进行处理,以ID为单位处理成 一行


    序言

    由于需要将TXT文件与Excel文件进行对比,但两种文件格式差异比较大,于是通过VBA写了一下小工具,以便日后方便使用。


    TXT文件如下

    在这里插入图片描述


    VBA代码如下
    ''**********************************************************************************************
    ''功能 将TXT的多行文本文件进行处理,以ID为单位处理成 一行,以便能够与Excel的对应文件进行对比分析
    ''**********************************************************************************************
    Sub readValue()
    
        Dim wkBook1 As Workbook
        Dim wkSheet1 As Worksheet
        Dim stringTmp As String
        Dim id As String
        Dim i As Integer
        
        '打开文件
        Set wkBook1 = Workbooks.Open(ThisWorkbook.Path & "\" & "test.xlsx") 
        '指定表
        Set wkSheet1 = wkBook1.Sheets("Sheet1")
        
        i = 2 '单元格 行 开始位置
        id = "" '单元格id值
        Do While i < 350
            
            '与上一行的单元格id值一致
            If id = wkSheet1.Range("B" & i).Value Then
                '将value值 拼接 在上一行的value值之后,单元格内换行
                stringTmp = stringTmp & Chr(10) & wkSheet1.Range("C" & i).Value
            '循环开始时
            ElseIf id = "" Then
                '获取ID 对应的value值
                stringTmp = wkSheet1.Range("C" & i).Value
            '与上一行的单元格id值不一致
            Else
                ' 在对应的相同ID的最后一行 右侧G列 保存ID值
                wkSheet1.Range("G" & i - 1).Value = wkSheet1.Range("B" & i - 1).Value
                ' 在对应的相同ID的最后一行 右侧H列 保存拼接后的value值
                wkSheet1.Range("H" & i - 1).Value = stringTmp
                '初始化 保存新的ID对应的value值
                stringTmp = wkSheet1.Range("C" & i).Value
                
            End If
            '将当前行的ID值保存到id变量,以便下一次比较
            id = wkSheet1.Range("B" & i).Value
    
            i = i + 1
        
        Loop
    
    End Sub
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48

    处理后的Excel文件如下

    在这里插入图片描述


    总结
    1. 将上一行的ID值保存到变量,再与当前行的ID值比较。
    2. Excel 单元格内 换行拼接 value值时 ,换行符是 Chr(10) 。
    3. 与上一行的单元格id值不一致时,在对应的相同ID的最后一行 右侧G列H列 保存ID 和 拼接后的 value值。同时初始化value值。

  • 相关阅读:
    高清LED显示屏设计制作指南
    微信小程序轮问题集合
    Nginx网站服务
    同步FIFO的verilog实现(1)——计数法
    Oracle12c新特性大全 存储资源隔离+flex+diskgroup
    KubeVela 云原生时代的应用管理平台
    JavaScript 初学( 十七 ) - JS HTML DOM
    四个小车相对导航集中式无迹卡尔曼滤波(fullyCN-EKF)
    无代码集成API服务平台连接更多应用
    手写 Attention & 迷你LLaMa2——LLM实战
  • 原文地址:https://blog.csdn.net/weixin_43810067/article/details/133389868