ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 点击宏按钮后,代码不能计算并显示《总表》Q列以后数据的统计结果

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-19 13:55 | 显示全部楼层
lss001 发表于 2018-9-19 12:45
标注黄色区公式未受影响
顺便提升一下速度!!!

       一天到晚,无奈躺在床上,一开始是学的是excel内置函数公式,遇到复杂问题时就得数组公式解决,但数组公式大多像清代婆娘的裹脚布--又臭又长,遇到递增范围大,数据多时,计算速度还非常慢;是准提部林、说不得、丢丢表格、七夕、梦幻小丑老师等屡次引荐创建专用的自定义函数。用了以后,方才知道了VBA的强大!几乎无所不能,比起内置函数的公式,快捷方便多了!

   说实话,原先对sub过程了解不多;觉得使用起来不如自定义函数简单、快捷、方便,能随时随地使用。直到遇见您写的这个代码,才彻底颠覆了我原有的认知!1.过程也可以加载宏;2.特别是面对系统性的一系列方案,需要好多自定义函数才能完成;但自定义函数多了,或者引用范围大,数据多,速度照样慢。相比之下,就显出sub过程的优越性了--即使一个工作簿里有多个过程,用到哪个只需点击哪个相关按钮,省去了那些重复无关的计算,最大限度地把人从枯燥、繁琐的劳动中解放了出来,真好!

  而这一切认知,都是拜您所赐!所以,非常感谢您的帮忙和启发!祝您工作顺利,事业有成!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-19 14:37 | 显示全部楼层

老师:请看截图:每个工作表H1指定的最大行号有本表的统计,如《总表》所示: 20180919141909.png

各个统计表也具备这个功能:
20180919142546.png 20180919142600.png 20180919142644.png


但是20楼里的新代码在《总表》点击宏按钮,刷新数据后,以数字开头的统计表下面变成了空白【只有《3 结构》的R列能够显示】。希望在各统计表H1指定的最大行号下面具备先前统计功能。
20180919143230.png 20180919143244.png 20180919143258.png

TA的精华主题

TA的得分主题

发表于 2018-9-19 14:53 | 显示全部楼层
WYS67 发表于 2018-9-19 11:46
计数统计只是手段,目的是方便更详细的分析、判断。但统计表的J5:J27948【H1指定的最大行号】向右的所有 ...

0917.zip (923.24 KB, 下载次数: 3)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-19 15:11 | 显示全部楼层
本帖最后由 WYS67 于 2018-9-19 15:18 编辑

老师:点击宏按钮更新数据时,统计表H1指定的最大行号【如27948】以下的区域输入的公式,怎么都变成了空白?
20180919151313.png 20180919151330.png 20180919151343.png

早前的代码能够显示的:请看下面截图:
20180919151731.png 20180919151744.png 20180919151758.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-19 15:31 | 显示全部楼层
想让代码限制在:上下范围  第五行 至(H1指定的最大行号)内;左右范围 各统计项目内与不重复数据个数相同的列数。

TA的精华主题

TA的得分主题

发表于 2018-9-19 15:34 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 lss001 于 2018-9-19 16:11 编辑

→_→→_→→_→

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-19 15:57 | 显示全部楼层
lss001 发表于 2018-9-19 15:34
把2个地方的1048576
都改为:
.Cells(1, 8) - 4

第一个:原句  Range(.Cells(5, 5), .Cells(1048576, 5)) = ""
             改成  Range(.Cells(5, 5), .Cells(1,8)-4) = ""      这样吗?

第二个:                Range(.Cells(5, f), .Cells(1048576, f + b - 1)) = ""    怎么改?

TA的精华主题

TA的得分主题

发表于 2018-9-19 16:05 来自手机 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 lss001 于 2018-9-22 13:31 编辑

⊙﹏⊙⊙﹏⊙

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-19 16:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 WYS67 于 2018-9-19 16:20 编辑
lss001 发表于 2018-9-19 16:05
原句  Range(.Cells(5, 5), .Cells(1048576, 5)) = ""
改成Range(.Cells(5, 5),.Cells(.Cells(1, 8) - 4,  ...

正要修改24楼的错误,您又发来了正确代码。
            Next
            Range(.Cells(5, 5), .Cells(.Cells(1, 8) - 4, 5)) = ""
             .Cells(5, 5).Resize(.Cells(3, 5) - 4, 5) = br


                Next
                Range(.Cells(5, f), .Cells(.Cells(1, 8) - 4, f + b - 1)) = ""
                .Cells(5, f).Resize(.Cells(1, 8) - 4, b) = br
谢谢老师!跟着您的脚印,我正一步步,踉踉跄跄地迈入VBA的门槛。
   看到新提醒时,我已经测试完毕,正要修改24楼的错误。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-19 20:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
lss001 发表于 2018-9-19 12:45
标注黄色区公式未受影响
顺便提升一下速度!!!

老师:再请教一个问题:如果要让所有统计表自J列开始,第五行至H1指定的最大行号区域内的“0”值为隐藏状态【这个隐藏状态和2093:27948之间的空白不一样,能够在27956行的统计里显示各列的“0”值有多少】,应该在哪个地方添加什么样的代码?   虽然条件格式里可以设置,但设置了以后,点击宏按钮时,运算速度一下子慢了二十多秒。所以还是写进代码里更方便些。


20180919202155.png 20180919202544.png 20180919203352.png

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-15 13:47 , Processed in 0.030047 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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