excel VBA SUMIFS使用多个工作表中的最后一行和日期范围

igsr9ssn  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(218)

我有三个工作表用于此代码-付款分录、事务处理和最终帐单。我想对事务处理中的B列求和,同时搜索日期列(D列),如果它在付款分录表上请求的日期范围内,并且名称与最终帐单上的B列匹配。符合这些约束条件的总和将打印到最终帐单表上的E列。
这是其中一行的正确Excel语法
第一个月
现在,我想在事务页面中搜索上述代码中的最后一行(而不是第50行),以查找最终账单页面上E列的每个填充行(因此,它从B列搜索当前行,而不是B6)。
这是我的方法,但我得到一个语法错误:

Dim final As Worksheet
Dim database As Worksheet
Dim payment As Worksheet
Dim CLastFundRow As Integer

Set final = ThisWorkbook.Sheets("Final Bill")
Set database = ThisWorkbook.Sheets("Transactions")
Set payment = ThisWorkbook.Sheets("Payment Entry")

CLastFundRow = database.Range("A3").End(xlDown).Row

final.Range("E6:E100").FormulaR1C1 =SUMIFS(database.range("B3:B" & CLastFundRow & ", database.Range("D3:D" & CLastFundRow & "), ">="& payment.Range("L20:M20"), database.Range("D3:D" & CLastFundRow & "), "<="&'payment.Range("O20:P20"), database("A3:A5" & CLastFundRow & "), final.range("B6")

编辑以添加解决方案:

CLastFinRow = final.Range("B6").End(xlDown).Row

final.Range("E6:E" & CLastFinRow).Formula2 = "=SUMIFS(Transactions!B$3:B$" & CLastFundRow & ", Transactions!D$3:D$" & CLastFundRow & ","">=""&'Payment Entry'!$L$20:$M$20, Transactions!D$3:D$" & CLastFundRow & ", ""<=""&'Payment Entry'!$O$20:$P$20, Transactions!A$3:A$" & CLastFundRow & ", 'Final Bill'!B6)"```
5gfr0r5j

5gfr0r5j1#

您正在将单元格的公式设置为文本,因此无法使用tou使用的范围,因此出现了sintax错误

final.Range("E6:E100").Formula ="SUMIFS("Transacion!B3:B" & CLastFundRow & ", Transactions!D3:D" & CLastFundRow & ",>='Payment Entry'!L20:M20, Transactions!D3:D" & CLastFundRow & ", <='Payment Entry'!O20:P20, transactions!A3:A5" & CLastFundRow & ", 'Final Bill'!B6")

相关问题