帮人捣鼓了个VBA代码用来实现多行合并,具体需求为:列2/列3/列4 相同的情况下,则对应的行合并为一行,且列1用空格隔开,列5则相加;

(对大多数办公室职员,VBA还算是提高效率的一个利器吧)

最终效果如下:

 1 Sub test()
2 Dim r%, i%
3 Dim arr, brr
4 Dim d As Object
5 Set d = CreateObject("scripting.dictionary")
6 With Worksheets("sheet1")
7 r = .Range("a1").End(xlDown).Row
8 arr = .Range("a2:e" & r)
9 For i = 1 To UBound(arr)
10 If Not d.exists(arr(i, 2) & arr(i, 3) & arr(i, 4)) Then
11 ReDim brr(1 To UBound(arr, 2))
12 For j = 1 To UBound(arr, 2)
13 brr(j) = arr(i, j)
14 Next
15 Else
16 brr = d(arr(i, 2) & arr(i, 3) & arr(i, 4))
17 brr(1) = brr(1) & " " & arr(i, 1)
18 brr(5) = brr(5) + arr(i, 5)
19
20 End If
21 d(arr(i, 2) & arr(i, 3) & arr(i, 4)) = brr
22 Next
23 .Range("h2").Resize(d.Count, UBound(brr)) = Application.Transpose(Application.Transpose(d.items))
24 End With
25 End Sub

代码以字典作为实现功能,把列2、列3、列4合并起来作为Key值,列1、列5为Value值,列1则用空格合并,列5则相加。

VBA实现相同行合并的更多相关文章

  1. awk之特征相同行的合并 ~转

    awk之特征相同行的合并 文本: 1001  hisk01 1001  hisk02 1001  hisk03 1002  hisk04 1002  hisk05 1002  hisk06 1003 ...

  2. easyui-datagrid合并相同行功能扩展

    //合并相同行$.extend($.fn.datagrid.methods, { autoMergeCells: function (jq, fields) { return jq.each(func ...

  3. Bootstrap-table实现动态合并相同行(表格同名合并)

    写在前面: 有时候表格的需求就是奇奇怪怪的,最近要做的表格需要实现当紧挨着的记录的某一列的行元素内容相同,就将其合并.要是不是相同的就不合并.如果表格数据的顺序不需要被改变,这个样子是可以很简单就完成 ...

  4. Bootstrap-table实现动态合并相同行

    Bootstrap-table  表格合并相同名字的列 @编写function() /** * 合并行 * @param data 原始数据(在服务端完成排序) * @param fieldName ...

  5. JS 实现Table相同行的单元格自动合并示例代码

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD ...

  6. awk特征相同行的合并

    [root@linux-node1 ~]# cat test.txt hisk01 hisk02 hisk03 hisk04 hisk05 hisk06 hisk07 hisk08 [root@lin ...

  7. easyui datagrid 合并相同行

    $.extend($.fn.datagrid.methods, { autoMergeCells: function (jq, fields) { return jq.each(function () ...

  8. CF 554B 找相同行

    给定一个由n*n块地砖铺成的房间,每块砖用0表示未打扫,1表示已打扫. 要求打扫时只能整列地扫,未打扫的会变为已打扫,已打扫的会变为未打扫.即1会变成0,而0会变成1,目标是 使最后整行为1的行数最大 ...

  9. linux-统计文件中相同行的数量

    cat sorttest | sort | uniq -c sorttest文件内容如下

随机推荐

  1. 汉化gitlab

    一.,基于 Larry Li 版汉化指南 修改 (以9-0-stable-zh分支为例) 源码安装汉化 推荐按照 gitlab-ce 源代码中 doc/install/installation.md ...

  2. 移动端和PC端区分

    1.移动端包括:浏览器.ios/android.qq端.微信端 九度数据官网源码.修改,要跳转的链接即可. function browserRedirect() { var sUserAgent = ...

  3. 关于Switch Case的优化

    switch case虽然是代替if else而出现的,并不好维护,有时候使用switch还不如使用if else. 但没有别的东西能代替switch case了吗?答案当然是否定的,现在就有两种方式 ...

  4. SpringBoot集成Swagger2并配置多个包路径扫描

    1. 简介   随着现在主流的前后端分离模式开发越来越成熟,接口文档的编写和规范是一件非常重要的事.简单的项目来说,对应的controller在一个包路径下,因此在Swagger配置参数时只需要配置一 ...

  5. Spark内核-Spark Shuffle 解析

    作者:十一喵先森 链接:https://juejin.im/post/5e1c41c6f265da3e152d1e62 来源:掘金 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. ...

  6. matplotlib的学习5-legend图例

    import matplotlib.pyplot as plt import numpy as np ''' legend 图例就是为了帮我们展示出每个数据对应的图像名称. 更好的让读者认识到你的数据 ...

  7. Spring MVC整合 freemarker

    1.什么是Spring MVC? Spring MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦,基于请求驱 ...

  8. redis 五种常见攻击方法

    如果需要大佬写好的脚本,可以直接去github上面搜 参考文章:https://www.cnblogs.com/wineme/articles/11731612.html    https://www ...

  9. linux里用户权限:~$,/$,~#,/#的区别与含义

    $表明是非root用户登录,#表示是root用户登录,它们是终端shell的命令提示符几种常用终端的命令提示符 BASH:  root账户: # ,非root账户: $KSH:  root账户: # ...

  10. [WPF] 在 ViewModel 中让数据验证出错(Validation.HasError)的控件获得焦点

    1. 需求 在 MVVM 中 ViewModel 和 View 之间的交互通常都是靠 Icommand 和 INotifyPropertyChanged,不过有时候还会需要从 MVVM 中控制 Vie ...