问题使用SUM(如果(而不是SumIf(

我已经写了一个公式在Excel中汇总项目在1列(文本)列是一个dynamic命名范围(Invoice_list_Item)该公式设置值(我的select)基于范围内的每个项目和这些值,我我现在正在使用一个用户窗体,我想显示该公式,而不是在工作簿本身,所以我的问题是,每次我写这个代码在用户窗体中,它不工作; 要么抛出一个错误,要么不显示一个值。 我已经尝试了Application.Sum,Application.Sumif,Application.Sumproduct和主要的一个我一直在努力使Application.Sum(If(Range(

任何帮助更正这个公式的macros将不胜感激。

=SUM(IF(Invoice_list_Item="1/4 Item",0.25,0)+IF(Invoice_list_Item="1/2 Item",0.5,0)+IF(Invoice_list_Item="1 Item",1,0)) 

您可以使用Application.Evaluate(这适用于数组公式)来计算string,就好像它是Excel公式一样:

  Dim vResult As Variant vResult = Application.Evaluate("=SUM(IF(Invoice_List_Item=""1/4 Item"",0.25,0)+IF(Invoice_List_Item=""1/2 Item"",0.5,0)+IF(Invoice_List_Item=""1 Item"",1,0))")