ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2482|回复: 20

[求助] 请老师们帮忙修改一下代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-5-23 15:03 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 laoshenji 于 2017-6-19 16:26 编辑

各位老师,本求助附件中的《汇总》的代码是 蓝桥玄霜 版主亲自写的,很好用。但在实际操作中,本人想在各分表的A1(合并后)单元格自动引用各自的标签名,岂料当把所有分表(注:《查询》、《汇总》除外)的A1:E1合并后,《汇总》的第4数据行均显示为错误内容(注:显示的内容为各分表的列标题)。令人恼火的是:此后,即使撤销所有分表的A1合并单元格,《汇总》第4数据行的错误仍得不到纠正。因为本人是VBA盲,对VBA一点也不懂,故请老师们帮忙修改一下代码。同时请赐教:为什么所有分表的A1单元格不能是合并单元格?假若在所有分表的第2数据行右侧添加“单位:元”内容后,又会对汇总结果产生什么影响?谢谢!
我瞎猜,是不是要修改多表去重复的代码?

《汇总》的第4数据行显示错误结果.rar

27.24 KB, 下载次数: 19

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-24 09:34 | 显示全部楼层
敬请老师们相助!

TA的精华主题

TA的得分主题

发表于 2017-5-24 10:35 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-5-24 11:29 | 显示全部楼层
汇总表的第四行A~G的数据与我的代码无关,只有分表中数据的位置有关系,
你现在是表头在第3行,所以可以把:
For i = 2 To UBound(Brr)
改为
For i = 4 To UBound(Brr)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-24 15:09 | 显示全部楼层
蓝桥玄霜 发表于 2017-5-24 11:29
汇总表的第四行A~G的数据与我的代码无关,只有分表中数据的位置有关系,
你现在是表头在第3行,所以可以把 ...

谢版主。按照您的指点,我将《模块3》的  For i = 2 To UBound(Brr)
改为:For i = 4 To UBound(Brr) 后,《汇总》第4数据行没有显示不正确内容了(显示为空),问题是:《汇总》的B4仍显示“部门名称”,C4仍显示“个人名称”。烦请版主再费心看看,再谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-24 16:15 | 显示全部楼层
microyip 发表于 2017-5-24 10:35
没见有错啊,蓝老写东西,怎么会有错?

谢谢microyip老师。蓝版已帮忙找出了其中一个问题,请老师再费心看看其他问题,再谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-24 16:16 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
microyip 发表于 2017-5-24 10:35
没见有错啊,蓝老写东西,怎么会有错?

谢谢microyip老师。蓝版已帮忙找出了其中一个问题,请老师再费心看看其他问题,再谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-24 16:17 | 显示全部楼层
microyip 发表于 2017-5-24 10:35
没见有错啊,蓝老写东西,怎么会有错?

谢谢microyip老师。蓝版已帮忙找出了其中一个问题,请老师再费心看看其他问题,再谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-5-25 10:54 | 显示全部楼层
蓝桥玄霜 发表于 2017-5-24 11:29
汇总表的第四行A~G的数据与我的代码无关,只有分表中数据的位置有关系,
你现在是表头在第3行,所以可以把 ...

问题还未全面解决,烦请版主及老师们继续相助。谢谢大家!

TA的精华主题

TA的得分主题

发表于 2017-5-25 13:23 | 显示全部楼层
蓝桥玄霜 发表于 2017-5-24 11:29
汇总表的第四行A~G的数据与我的代码无关,只有分表中数据的位置有关系,
你现在是表头在第3行,所以可以把 ...

尊敬的蓝版,您好,麻烦看下http://club.excelhome.net/thread-1348013-1-1.html
我是新人,刚学VBA,自己写了一段,但是运行结果不对,不知道哪里错误,请帮忙修改下
Sub 宏1()
Dim Arr, i&, Brr(1 To 5000, 1 To 5000), j&, n&, aa
Sheet2.Activate
Arr = Sheet2.[a1].CurrentRegion
Set d = CreateObject("scripting.dictionary")
For i = 2 To UBound(Arr)
    If InStr(Arr(i, 2), "/") Then
        aa = Split(Arr(i, 2), "/")
        For j = 0 To UBound(aa)
            Brr(i, j + 1) = aa(j)
            If Not d.exists(Brr(i, j + 1)) Then
            Set d(Brr(i, j + 1)) = Range("c" & i)
        Else
            Set d(Brr(i, j + 1)) = Union(d(Brr(i, j + 1)), Range("c" & i))
        End If
        Next
    Else
        
        Brr(i, 1) = Arr(i, 2)
        If Not d.exists(Brr(i, 1)) Then
            Set d(Brr(i, 1)) = Range("c" & i)
        Else
            Set d(Brr(i, 1)) = Union(d(Brr(i, 1)), Range("c" & i))
        End If
    End If
   
Next
[d1].Resize(i, j + 1) = Brr
Sheet1.Activate
r = Range("a65536").End(xlUp).Row
For k = 1 To r
ss = Range("a" & k).Value
If d.exists(ss) Then
            Cells(i, 2) = d(ss)
        End If
Next
End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-4-27 04:24 , Processed in 0.047907 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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