【问题标题】:Sumifs with VBA使用 VBA 的 Sumifs
【发布时间】:2020-06-19 05:16:37
【问题描述】:

我尝试使用不同的 VBA 子程序使用类别和日期范围将数据从我的 [MasterRenamed] 数据表中提取到我的 [P&L] 表中。

当我得到第一个工作时,我无法弄清楚如何使它成为动态的(即我一次只能做一个项目)。无论出于何种原因,我都完全失败了。

我会上传工作簿,但可能是因为我是论坛的新手,我还不允许上传文档(?)。只要它有效,我就不会设置任何特定的代码格式。我当然希望得到一些指导。

【问题讨论】:

  • 请分享您尝试过的实际代码 sn-ps 以及它是如何不工作的。截图会让任何人都很难重现代码。
  • 只需复制并粘贴问题中的代码,不要将其复制并粘贴到 Excel 工作表中,然后复制并粘贴其中的 sn-p!

标签: excel vba worksheet-function sumifs


【解决方案1】:

感谢两位的回复。我能够弄清楚,并且相信我已经提出了一个与我在网上能够找到的解决方案相比非常好的解决方案。

此宏使用 excel (col k) 中的搜索列表来搜索数据集(银行和信用卡对帐单)并在列搜索列表中返回组合总计(如 Excel 的本机合并函数)。

Sub Search_and_Consolidate_Sums()

将 ws1 调暗为工作表

设置 ws1 = Sheets("MasterRenamedx")

ws1.选择

将 lrow1 变暗,lrow2 变长 ' 第一行用于查找数据范围,第二行用于查找列表。

lrow1 = Range("B" & Rows.Count).End(xlUp).Row

lrow2 = Range("K" & Rows.Count).End(xlUp).Row

Dim rng1 As Range ' 查找列表

设置 rng1 = Range("k1")

stDate = Range("J1") ' 开始和结束日期

EndDate = Range("j2")

Dim Dates As Range, Categories As Range, Debits As Range, Credits As Range ' 数据范围

设置日期 = Sheets("MasterRenamedx").Range("B2:B" & lrow1)

设置类别 = Sheets("MasterRenamedx").Range("C2:C" & lrow1)

设置借方 = Sheets("MasterRenamedx").Range("E2:E" & lrow1)

对于 i = 2 到 lrow2

mytotals = Application.WorksheetFunction.SumIfs(Debits, Dates, _

">=" & stDate, 日期, "

Cells(i, 12) = mytotals

下一个

结束子

【讨论】:

    猜你喜欢
    • 2010-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    • 2016-10-28
    • 1970-01-01
    相关资源
    最近更新 更多