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

2 篇文章 0 订阅
1 篇文章 0 订阅

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



处理后的Excel文件如下

在这里插入图片描述


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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小泉映月

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值