ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 按要求修改VBA过程的J列公式代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-5-20 23:13 | 显示全部楼层
13782671637 发表于 2018-5-20 22:42
非常感谢老师的帮助!我已用您6楼修改的代码测试过,计算结果正确、快捷!8楼的代码和6楼前后顺序不大相 ...

可以直接用8楼的就可以。我明天有时间再给你改改,今天还要写公众号,你再想想还有啥想优化的,需要写进去的,都可以提,我直接改,要不太费时间。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-5-20 23:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
13782671637 发表于 2018-5-20 22:42
非常感谢老师的帮助!我已用您6楼修改的代码测试过,计算结果正确、快捷!8楼的代码和6楼前后顺序不大相 ...

可以直接用8楼的就可以。我明天有时间再给你改改,今天还要写公众号,你再想想还有啥想优化的,需要写进去的,都可以提,我直接改,要不太费时间。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 00:12 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yanghaipingabc 发表于 2018-5-20 23:13
可以直接用8楼的就可以。我明天有时间再给你改改,今天还要写公众号,你再想想还有啥想优化的,需要写进 ...

好的。感谢老师的热心帮忙!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 02:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
yanghaipingabc 发表于 2018-5-20 23:14
可以直接用8楼的就可以。我明天有时间再给你改改,今天还要写公众号,你再想想还有啥想优化的,需要写进 ...

老师:附件 VBA过程代码优化.zip (1016.7 KB, 下载次数: 14) 中,四个工作表里的C2为本工作表输入或提取数据的指定最大行号。  1.《总表》里C2的指定最大行号是83836。代表后三个工作表需要提取的数据,限制在《总表》E5:I83836的区域里;指定条件在对应的J5:J83836里。不能影响指定最大行号83836以下和J列右边的区域需要进行其他项目的统计。


  2.工作表《0》里C2的指定最大行号是814,代表满足 总表!$J$5:$J$83836=0!$I$1条件的所有数据,存放在工作表《0》E5:I814的指定区域内,而J5:J814用于存放“序号期差”;不能影响指定最大行号814以下和J列右边的区域需要进行其他项目的统计;
     同理,工作表《1》里C2的指定最大行号是6565,工作表《2》里C2的指定最大行号是8752,和工作表《0》的要求一样,不能影响指定最大行号以下和J列右边的区域需要进行其他项目的统计。

  请老师把指定最大行号C2作为一个必须的参数,写进VBA过程的代码里。


3.我不懂VBA,不知能不能把工作表0、1、2里的三个按钮合并为一个总按钮放在《总表》里【最好是不要按钮】,当《总表》I列有新增数据时,根据J列计算结果【需要时点击一次按钮,便能实现实时更新对应于后面三个工作表的数据?


  以上1~2项,为必须增加的内容;第3项,只要能够把工作表0、1、2里的三个按钮合并为一个总按钮放在《总表》里使用,我就心满意足了!


  希望老师在原基础上,拓展代码的功能。多谢了!

TA的精华主题

TA的得分主题

发表于 2018-5-21 08:38 | 显示全部楼层
13782671637 发表于 2018-5-21 02:52
老师:附件中,四个工作表里的C2为本工作表输入或提取数据的指定最大行号。  1.《总表》里C2的指定最大行 ...

消息收到,修改代码如下,请自行测试结果:
  1. Sub test()
  2.     Application.ScreenUpdating = False
  3.     Application.DisplayAlerts = False
  4.     With Sheets("总表")
  5.         r = .Cells(.Rows.Count, 5).End(xlUp).Row
  6.         arr = .Range("e5:j" & r)
  7.     End With
  8.     ReDim brr(1 To UBound(arr), 1 To 6)
  9.     For Each sht In Sheets
  10.         If sht.Name <> ActiveSheet.Name Then
  11.             With sht
  12.                  xm = .[i1]
  13.                  m = 0
  14.                  For i = 1 To UBound(arr)
  15.                      If arr(i, 6) = xm Then
  16.                          m = m + 1
  17.                          For j = 1 To 5
  18.                              brr(m, j) = arr(i, j)
  19.                          Next
  20.                      End If
  21.                  Next
  22.                  For i = 2 To UBound(brr)
  23.                      If brr(i, 1) = 0 Or brr(i, 1) = "" Then
  24.                           brr(i, 6) = .[d1] - brr(i - 1, 1)
  25.                      Else
  26.                           brr(i, 6) = brr(i, 1) - brr(i - 1, 1)
  27.                      End If
  28.                 Next
  29.                .Range("e5:i" & .Rows.Count).ClearContents
  30.                .Range("e5").Resize(UBound(brr), UBound(brr, 2)) = brr
  31.             End With
  32.         End If
  33.     Next
  34.     Application.ScreenUpdating = True
  35.     MsgBox "数据计算完毕!"
  36. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-5-21 08:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
13782671637 发表于 2018-5-21 02:52
老师:附件中,四个工作表里的C2为本工作表输入或提取数据的指定最大行号。  1.《总表》里C2的指定最大行 ...

附件供测试:

修改VBA过程代码.rar

953.04 KB, 下载次数: 8

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 12:13 | 显示全部楼层
本帖最后由 13782671637 于 2018-5-21 12:19 编辑
lsc900707 发表于 2018-5-21 08:38
消息收到,修改代码如下,请自行测试结果:

版主老师:经测试,16楼附件里的代码基本上实现了我所需要的条件提取和计算功能,很好用!还有以下几个问题想请教版主:    1.增加调用各个工作表C2的数值为计算时引用的指定最大行号。就是14楼1、2要求的那样【估计版主老师没有在意这一个代码计算区域范围的要求】。我需要在《总表》C2指定的83836行号下面,对指定的数据区域E5:J83836进行其他统计和分析。同理,工作表0、1、2里J列代码的计算,也已各自C2指定的指定行号为计算范围。

   2.屏蔽工作表0、1、2 中J列计算结果以外多余的数字为空白。如工作表《0》中J454及以下的4878;《1》中J2133及以下的4878;《2》中J2305及以下的4878。


  3.由于代码执行按钮在《总表》里,为使各个不同工作簿里的表名更具有个性特征,很多时候需要修改后面三个工作表0、1、2的表名【表名不一定是顺序号,而是自定义的】,应该修改代码的哪一部分?

恳请版主老师帮忙解决上述问题。


TA的精华主题

TA的得分主题

发表于 2018-5-21 12:21 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
13782671637 发表于 2018-5-21 12:13
版主老师:经测试,16楼附件里的代码基本上实现了我所需要的条件提取和计算功能,很好用!还有以下几个问 ...

没有看你的新要求,有时间再看看。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 12:30 | 显示全部楼层
lsc900707 发表于 2018-5-21 12:21
没有看你的新要求,有时间再看看。

那就谢谢老师了!恳请老师帮忙解决!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 12:48 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
13782671637 发表于 2018-5-21 02:52
老师:附件中,四个工作表里的C2为本工作表输入或提取数据的指定最大行号。  1.《总表》里C2的指定最大行 ...

恳请高手们按14楼的要求修改和完善附件里的代码。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-16 12:36 , Processed in 0.025158 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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