[求助]利用字典-合并达到条件的数据 & 其余的照样填写

qq_33986247 2020-07-02 05:04:21
求大神帮助,如何利用字典做到处理批量数据合并(不只范例中14笔, 是动态数据), 部分数据保持一样, 部分要加上斜线append在同一储存框
上面的是原生数据



下面的是合并规则是根据 -> A高铁站 & E车型种类 & F别号是一样

A高铁站 & E车型种类 & F别号是一样的情况下 -> B趟 相加 ; C票价 相加 ; D 发车准时率 取最高值 ; G备注 加上斜线append在同一储存框

[A1:G1]格是要保持一样

求大神了

...全文
267 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hitzsf 2020-08-16
  • 打赏
  • 举报
回复

Option Explicit

Sub merget()
    Application.ScreenUpdating = False

    Dim dic As Object
    
    Dim rng As Range
    Set dic = CreateObject("scripting.dictionary")
    
    Set rng = Worksheets("Sheet1").UsedRange
    
    Dim i As Integer, j As Integer
    
    Dim key As String
    Dim row As Integer, krow As Integer
    row = 1
    
    Dim findStr As Integer
    For i = 1 To rng.Rows.Count
        key = rng.Cells(i, 1).Value & rng.Cells(i, 6).Value
        'Debug.Print key
        If key = "" Then GoTo LINE

        If (dic.exists(key)) Then
            krow = dic(key)
            Cells(krow, 2).Value = Val(Cells(krow, 2).Value) + Val(rng(i, 2).Value)
            Cells(krow, 3).Value = Val(Cells(krow, 3).Value) + Val(rng(i, 3).Value)
            findStr = InStr(Cells(krow, 7).Value, rng(i, 7).Value)
            If findStr = 0 Then
                If StrComp(Cells(krow, 7).Value, rng(i, 7).Value) < 0 Then
                    Cells(krow, 7).Value = Cells(krow, 7).Value & "/" & rng(i, 7).Value
                Else
                    Cells(krow, 7).Value = rng(i, 7).Value & "/" & Cells(krow, 7).Value
                End If
            End If
        Else
            dic.Item(key) = row
            rng(i, 1).Resize(1, 7).Copy
            Range(Cells(row, 1), Cells(row, 7)).PasteSpecial xlPasteValuesAndNumberFormats
            row = row + 1
         End If
LINE:
    Next i
   Application.ScreenUpdating = True
End Sub

ZHRXJR 2020-07-04
  • 打赏
  • 举报
回复
现在谁还在使用字典,直接操作Excel 或 使用ADO操作Excel都比较简单,你的这个问题,用上述方法操作,应该没有问题。
X-i-n 2020-07-03
  • 打赏
  • 举报
回复
字什么典啊,这是经典的数据透视表的场景

2,463

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧