【问题标题】:SumIf across two sheetsSumIf 跨两张纸
【发布时间】:2016-11-17 21:45:49
【问题描述】:

我正在尝试执行 SumIf,其中数据保存在 Sheet6(Debt) 中,并且 sumif 需要添加到 Sheet5(Summary - Debt > 12 Months)。

我已经收集了唯一的客户编号并将它们粘贴到 Col B7:B###

客户编号保存在 Debt 的 Col B 中,求和的列是 DebtH:H

要在公式栏中执行此操作,我会写:=Sumif(Debt!B:B, B7, Debt!H:H)

这是我目前所拥有的:

 Dim lr As Long
  Dim lra As Long
lr = Sheets("Summary - Debt > 12 Months").Cells(Rows.Count, "B").End(xlUp).Row
lra = Sheets("debt").Cells(Rows.Count, "B").End(xlUp).Row
    Sheets("Summary - Debt > 12 Months").Range("H7:h" & lr).Formula = "=SUMif(sheet6!b2:b" & lra,(sheet5!b7:b" & lr),(Sheet6!h2:h" & lra))"

【问题讨论】:

    标签: excel sumifs vba


    【解决方案1】:

    尝试将最后一行分配给字符串变量(例如 sTest),然后使用即时窗口 Ctrl + G 并键入 ?sTest

    你试图通过的不会是你想象的那样。

    您需要更多 & 和起始引号。

    Sheets("Summary - Debt > 12 Months").Range("H7:h" & lr).Formula = "=SUMif(sheet6!b2:b" & lra & ",(sheet5!b7:b" & lr & "),(Sheet6!h2:h" & lra & "))"
    

    【讨论】:

    • 嗨,还是不行。结果为 =SUMIF(Sheet6!B2:B8670,(B7),(Sheet6!H2:H8670))。工作簿没有名为 Sheet6 的工作表,而是 Debt...
    • 那么,这是你的问题的一部分......你的代码说 sheet6
    • @Rdster PO 使用 Sheet6 作为工作簿内工作表的索引。他实际上是指名为Debt 的工作表(再次阅读他的帖子)。只需在您的答案中将sheet 修改为Debt,它应该可以工作。还有Sheet5Summary - Debt > 12 Months
    • 是的,我明白这一点。我打算让他拥有尤里卡!当他自己把它放在一起的那一刻。
    【解决方案2】:

    答案如下:

        Dim lr As Long
          Dim lra As Long
    
    lr = Sheets("Summary - Debt > 12 Months").Cells(Rows.Count, "B").End(xlUp).Row
        lra = Sheets("debt").Cells(Rows.Count, "B").End(xlUp).Row
    
    Sheets("Summary - Debt > 12 Months").Range("H7:h" & lr).Formula = "=SUMif(Debt!$b$2:$b$" & lra & ",b7,(Debt!$h$2:$h$" & lra & "))"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-22
      • 1970-01-01
      • 2019-11-24
      • 2021-06-19
      • 2016-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多