0

我正在使用宏来总结特定债务人的价值。它目前工作正常,但我需要添加另一个标准;

Range("DebtorList_Payed")=Application.SumIf(Range("InvoiceList_Table_ItmCode"), _
  Range("Debtor_list_Debtors"), Range("InvoiceList_Price"))

我在发票列表工作表上有另一个范围,称为 Range("InvoiceList_Payed") 在这一行中有“CASH”、“CREDIT”、“(Custom) CASH”和“(Custom) CREDIT”。

“CASH”和“(Custom) CASH”行中的文本为绿色,“CREDIT”和“(Custom) CREDIT”行中的文本为红色

使用现有的宏,我只需要对相应 Range("InvoiceList_Payed") 中文本颜色为绿色的行求和,

所以像;

Range("DebtorList_Payed")=Application.SumIf(Range("InvoiceList_Table_ItmCode"), _
  Range("Debtor_list_Debtors"), Range("InvoiceList_Price") = _  
  Range("InvoiceList_Payed")> "Green"))
4

1 回答 1

0

如果您使用的是 Excel 2007 或更高版本,则可以使用 SUMIFS 函数,如果您使用的是早期版本,则可以嵌套 SUM 和 IF 函数。真正的问题是无法从工作表函数中获取单元格的颜色。您可以使用 CELL("color", REF) 函数,如果且仅当单元格的格式设置为绿色为正而红色为负(反之亦然)。

当然,使用标准 VBA 函数/属性(如 RGB)很容易做到这一点。

您也可以只触发“CASH”这个词,因为两个绿色行都有共同点。

例子:

SUMIFS(Range("InvoiceList_Payed"), Range("InvoiceList_Table_ItmCode"), _  
  Range("Debtor_list_Debtors"), Range("InvoiceList_Payed"), "*CASH*")
于 2010-10-30T06:20:21.853 回答