ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

   
EH云课堂-专业的职场技能充电站 限时送,魔方网表将Excel变在线系统 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
Excel不给力? 何不试试FoxTable! Excel 2016函数公式学习大典 高效办公必会的Office实战技巧 免费下载Excel行业应用视频
300集Office 2010微视频教程 Tableau-数据可视化工具 ExcelHome出品 - VBA代码宝免费下载 13门Excel免费公开课任你学
你的Excel 2010实战技巧学习锦囊 欲罢不能, 过目难忘的 Office 新界面 免费的Excel考勤计算系统
查看: 119|回复: 3

[求助] 求助代码

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-2-12 17:36 | 显示全部楼层 |阅读模式
详见附件,自己连录带搜的摸索了一段代码,现在就差以下红色字体的值不知道怎么取了,详情请见参附件,谢谢各位大侠相助把红色字体的代码帮我写完或是另外写代码帮我实现我想要实现的功能,谢谢。
For Each sh In Worksheets
          If sh.CodeName <> "Sheet1" Then
              Sheet1.Cells(a, 1).Value = sh.Range("b3")
              Sheet1.Cells(a, 2).Value = sh.Range("b4")
              Sheet1.Cells(a, 3).Value = sh.Range("b2")
              Sheet1.Cells(a, 4).Value = sh.Range("d2")
              Sheet1.Cells(a, 5).Value = sh.Range("d3")
              Sheet1.Cells(a, 6).Value = sh.Range("B5")
              Sheet1.Cells(a, 7).Value = sh.Range("d5")
              Sheet1.Cells(a, 8).Value = sh.Range("d4")
              Sheet1.Cells(a, 9).Value = 0    ‘应该是取对应工作表满足起始日期的(起始日期在周报表的E2单元格)第一条记录的上一条记录的余额’
              Sheet1.Cells(a, 10).Value = 0  ‘应该是取对应工作表日期在起、止日期的内的借方金额的合计‘
              Sheet1.Cells(a, 11).Value = 0  ‘应该是取对应工作表日期在起、止日期的内的贷方金额的合计’
              Sheet1.Cells(a, 12).Value = 0  ‘应该是取对应工作表满足截止日期的(截止日期在周报表的G2单元格)最后一条记录的的余额’

              a = a + 1
          End If
      Next

资金周报【XXX】.zip

17.21 KB, 下载次数: 3

TA的精华主题

TA的得分主题

发表于 2019-2-12 20:05 | 显示全部楼层
  1. Sub aa()
  2. Dim ar(), i&, sh As Worksheet, k%, rng As Range, m%, n%
  3. k = ThisWorkbook.Worksheets.Count
  4. ReDim Preserve ar(1 To k, 1 To 12)
  5. With Sheet1
  6.     For m = 1 To 12
  7.         ar(1, m) = .Cells(3, m)
  8.     Next
  9. End With
  10. For Each sh In Worksheets
  11.     If sh.CodeName <> "Sheet1" Then
  12.         n = n + 1
  13.         ar(n + 1, 9) = sh.[e7]
  14.             For Each rng In sh.[a1:e5]
  15.                 If rng <> "" Then
  16.                     For m = 1 To 8
  17.                         If Replace(Split(rng, ":")(0), " ", "") = ar(1, m) Then
  18.                             ar(n + 1, m) = rng.Offset(0, 1)
  19.                         End If
  20.                     Next
  21.                 End If
  22.             Next
  23.             For Each rng In sh.Range(sh.Cells(8, 1), sh.Cells(sh.Rows.Count, 5).End(3))
  24.                 If rng >= Sheet1.[e2] And rng <= Sheet1.[g2] Then
  25.                     ar(n + 1, 10) = ar(n + 1, 10) + rng.Offset(0, 2)
  26.                     ar(n + 1, 11) = ar(n + 1, 11) + rng.Offset(0, 3)
  27.                     ar(n + 1, 12) = rng.Offset(0, 4)
  28.                 End If
  29.            Next
  30.         
  31.     End If
  32. Next
  33. Sheet1.[a3].Resize(UBound(ar), UBound(ar, 2)) = ar
  34. End Sub
复制代码

评分

参与人数 1鲜花 +2 收起 理由
chenfaanX + 2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-12 22:27 | 显示全部楼层

谢谢,能不能帮忙把我那四句红色字体等号后用多条件求和解决呢?谢谢

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-13 09:04 | 显示全部楼层

谢谢大侠,基本能实现我想要的功能,但ar(n + 1, 9) = sh.[e7],这个不是固定取对应工作表的E7单元格,而是要根据输入的起始日期来取,要取起始日期的上一天的最后一行的期末余额,比如输入的起始日期是2019年1月5日,那么应该取2019年1月4日的最后一行的余额
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关注官方微信,高效办公专列,每天发车

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

GMT+8, 2019-2-20 19:27 , Processed in 0.077694 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2017 Wooffice Inc.

   

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

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

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