ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于养老保险账户合并的难题

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-10-16 21:26 | 显示全部楼层
383579022 发表于 2012-10-16 21:23
起月份199601,止月份199603,那么要结果表里是不是要增加列呢?

增加列也可以啊,只要是能达到目的就可以

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-10-16 21:29 | 显示全部楼层
383579022 发表于 2012-10-16 21:23
起月份199601,止月份199603,那么要结果表里是不是要增加列呢?

增加列也可以,只要能达到目的就可以了

TA的精华主题

TA的得分主题

发表于 2012-10-16 21:29 | 显示全部楼层
许海鑫 发表于 2012-10-16 21:26
增加列也可以啊,只要是能达到目的就可以

别“也可以”呀,你把最终你想得到的结果手工演示一下,别人才好帮你。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-10-16 21:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
383579022 发表于 2012-10-16 21:29
别“也可以”呀,你把最终你想得到的结果手工演示一下,别人才好帮你。

我附件里那个效果表就是我想要的结果,空白的行也可以去掉,因为现在的列里就有起月份和止月份,只不过现在是起月份和止月份是一样的,我是考虑是不是可以用if判断的时候自己加上的起月份、止月份这两列

TA的精华主题

TA的得分主题

发表于 2012-10-16 21:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
许海鑫 发表于 2012-10-16 21:36
我附件里那个效果表就是我想要的结果,空白的行也可以去掉,因为现在的列里就有起月份和止月份,只不过现 ...

VBA肯定能解决,用公式的话,估计......

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-10-16 21:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
383579022 发表于 2012-10-16 21:46
VBA肯定能解决,用公式的话,估计......

Dim arr, brr, d As Object, i&, j&, k&, x$
Set d = CreateObject("scripting.dictionary")
arr = Range("a1").CurrentRegion
Range("a2:q" & UBound(arr)).ClearContents
For i = 2 To UBound(arr)
    x = arr(i, 1) & "," & arr(i, 5) & "," & arr(i, 9) & "," & arr(i, 10) & "," & arr(i, 14)
    d(x) = d(x) & "," & arr(i, 7)
Next
ReDim brr(1 To d.Count, 1 To UBound(arr, 2))
a = d.keys: b = d.items
For j = 0 To d.Count - 1
     m = Split(b(j), ",")
    For i = 2 To UBound(arr)
        x = arr(i, 1) & "," & arr(i, 5) & "," & arr(i, 9) & "," & arr(i, 10) & "," & arr(i, 14)
        If a(j) = x Then
            For k = 1 To UBound(arr, 2)
                brr(j + 1, k) = arr(i, k)
            Next
               brr(j + 1, 7) = IIf(m(0) = "", m(1), m(0))
               brr(j + 1, 6) = Right(brr(j + 1, 7), 2)
               brr(j + 1, 8) = m(UBound(m))
        End If
    Next
Next
Range("a2").Resize(UBound(brr), UBound(brr, 2)) = brr

高手,这是另一位高手写的东西,我也看不懂,你看看是VBA吗

TA的精华主题

TA的得分主题

发表于 2012-10-16 21:56 | 显示全部楼层
许海鑫 发表于 2012-10-16 21:48
Dim arr, brr, d As Object, i&, j&, k&, x$
Set d = CreateObject("scripting.dictionary")
arr = Ran ...

是VBA代码。
这不很好吗?已经实现你的要求了吧?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-10-16 21:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
383579022 发表于 2012-10-16 21:56
是VBA代码。
这不很好吗?已经实现你的要求了吧?

这个代码,怎么执行啊?呵呵,这个问题太弱了

TA的精华主题

TA的得分主题

发表于 2012-10-16 22:01 | 显示全部楼层
许海鑫 发表于 2012-10-16 21:58
这个代码,怎么执行啊?呵呵,这个问题太弱了

呵呵,在代码里按F5就行。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-10-16 22:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 许海鑫 于 2012-10-16 22:13 编辑
383579022 发表于 2012-10-16 22:01
呵呵,在代码里按F5就行。


按F5出现下图呢

再怎么操作呢
QQ截图20121016221128.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-6 13:43 , Processed in 0.026595 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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