ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-5-21 13:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
13782671637 发表于 2018-5-21 12:30
那就谢谢老师了!恳请老师帮忙解决!

看的云里雾里的,不知道是不是这个意思:
  1. Sub test()
  2.     Application.ScreenUpdating = False
  3.     Application.DisplayAlerts = False
  4.     r = [c2]
  5.     arr = Range("e5:j" & r)
  6.     ReDim brr(1 To UBound(arr), 1 To 6)
  7.     For Each sht In Sheets
  8.         If sht.Name <> ActiveSheet.Name Then
  9.             With sht
  10.                  xm = .[i1]: n = .[c2]
  11.                  m = 0
  12.                  For i = 1 To UBound(arr)
  13.                      If arr(i, 6) = xm Then
  14.                          m = m + 1
  15.                          For j = 1 To 5
  16.                              brr(m, j) = arr(i, j)
  17.                          Next
  18.                      End If
  19.                  Next
  20.                  If m <= n Then
  21.                      For i = 2 To UBound(brr)
  22.                          If Len(brr(i, 1)) = 0 Then
  23.                              brr(i, 6) = ""
  24.                          Else
  25.                              brr(i, 6) = brr(i, 1) - brr(i - 1, 1)
  26.                          End If
  27.                     Next
  28.                     .Range("e5:i" & .Rows.Count).ClearContents
  29.                     .Range("e5").Resize(UBound(brr), UBound(brr, 2)) = brr
  30.                 Else
  31.                     For i = 2 To n
  32.                          If Len(brr(i, 1)) = 0 Then
  33.                              brr(i, 6) = ""
  34.                          Else
  35.                              brr(i, 6) = brr(i, 1) - brr(i - 1, 1)
  36.                          End If
  37.                     Next
  38.                     .Range("e5:i" & .Rows.Count).ClearContents
  39.                     .Range("e5").Resize(n, UBound(brr, 2)) = brr
  40.                 End If
  41.             End With
  42.         End If
  43.     Next
  44.     Application.ScreenUpdating = True
  45.     MsgBox "数据计算完毕!"
  46. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-5-21 13:33 | 显示全部楼层
13782671637 发表于 2018-5-21 12:13
版主老师:经测试,16楼附件里的代码基本上实现了我所需要的条件提取和计算功能,很好用!还有以下几个问 ...

第三个问题:不需做任何修改,只要表名不是“总表”即可。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 13:36 | 显示全部楼层
本帖最后由 13782671637 于 2018-5-21 13:37 编辑
lsc900707 发表于 2018-5-21 13:28
看的云里雾里的,不知道是不是这个意思:

老师:复制粘贴代码后无法运行。是什么原因? 20180521133502.png
提示“缺少 =”

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 13:38 | 显示全部楼层
lsc900707 发表于 2018-5-21 13:33
第三个问题:不需做任何修改,只要表名不是“总表”即可。

麻烦您做成附件上传好吗?

TA的精华主题

TA的得分主题

发表于 2018-5-21 13:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
13782671637 发表于 2018-5-21 13:38
麻烦您做成附件上传好吗?

请自行测试结果是否符合要求:


修改VBA过程代码.rar

901.55 KB, 下载次数: 3

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 14:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 13782671637 于 2018-5-21 15:51 编辑
lsc900707 发表于 2018-5-21 13:47
请自行测试结果是否符合要求:

20180521140709.png

老师:J列的计算结果显示请按照截图中批注要求的办。

还有,代码在工作簿增加新工作表后点击“更新分表”就会出现错误。所以,必须在代码中明确需要提取数据的工作表名称。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 14:41 | 显示全部楼层
lsc900707 发表于 2018-5-21 13:47
请自行测试结果是否符合要求:

还有:我在后三个工作表的指定最大行号下面都加了一个统计表。如截图所示:
20180521143534.png


但点击《总表》的【更新分表】按钮后,统计表全部变成了空白。
20180521143911.png

说明代码的计算范围没有限制在C2指定的区域里。怎样解决?

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 15:22 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 15:50 | 显示全部楼层
13782671637 发表于 2018-5-21 14:10
老师:J列的计算结果显示请按照截图中批注要求的办。

还有,代码在工作簿增加新工作表后点击“更新分表”就会出现错误。所以,必须在代码中明确需要提取数据的工作表名称。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-5-21 16:01 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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