0

特定の債務者の値を合計するためにマクロを使用しています。現在は問題なく動作していますが、別の基準を追加する必要があります。

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

Invoice List Worksheet に 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) 関数を使用できるのは、セルの書式設定が、緑が正で赤が負 (またはその逆) になるように設定されている場合のみです。

もちろん、これは RGB などの標準の VBA 関数/プロパティを使用して簡単に実行できます。

両方の緑色の行に共通しているため、「CASH」という単語からトリガーすることもできます。

例:

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