VB.net互操作中的总和(计数)

时间:2019-04-11 01:16:47

标签: excel vb.net excel-interop

我构建了一个程序,该程序使用带有VB.net的Excel Interop来自动过滤大型电子表格以进行分析。最近我意识到,使用Excel的内置Sumproduct function可以实现更高的准确性和速度。但是,尽管我在VBA中成功实现了这一点,但我一直在想出如何使用Excel Interop在VB.net中进行翻译的问题。

正在使用 VBA

Worksheets("Products").Range("A1").Formula = "=SUMPRODUCT(--('Fruit'!J:J=""" & "Apples" & """))"

无法正常运行 VB.net :(注意:我想将其分配给变量,而不是将公式应用于上述单元格。)

Product1 = WorksheetFunction.SumProduct(--(Worksheet.Range("J:J").EntireColumn.Value() = "Apple"))

此代码给出此错误:

  

System.InvalidCastException:'过载   解决方案失败,因为不能使用这些命令调用Public'='   参数:       '公共共享运算符=(a作为字符串,b作为字符串)作为布尔值':           匹配参数'a'的参数不能从'Object(,)'转换为'String'。'

但是,我能够做到这一点:

VBA

Range("A1").formula = "=SUMPRODUCT(A:A,D:D)"

VB.net 中重写:

WorksheetFunction.SumProduct(Worksheet.Range("A1").EntireColumn, objNewSheet.Range("D1").EntireColumn)

我知道我缺少一些“基本”(双关语意味),但我只是想不通如何通过Sumproduct函数而不是Range / Range来传递Range和String。

0 个答案:

没有答案
相关问题