在 VB.net 中正确使用 worksheetfunction.countifs
proper use of worksheetfunction.countifs in VB.net
我正在编写一些代码以从测试结果文件中提取数据,并在 excel 文件中以有意义的位汇总数据,因为最终可能会查看数据的每个人都有excel.
我在文件中的 sheet 中列出了数据,其中 A 到 M 是数据,U 到 AB 是摘要 table。 B 列包含测试发生的年份和月份,格式为 YYMM
,L 列包含测试是通过还是失败 "PASS" 或 "FAIL" 我正在尝试执行下面的代码使用 dateitem
,在我下面的示例中,它是 2017 年 1 月,作为代表 B 列的范围的标准,并使用 "F*" 作为代表 L
列的范围的标准
Imports Microsoft.Office.Interop.Excel
Dim xlapp As Application = New Application()
Dim xlworkbook As Workbook
Dim xlworksheet As Worksheet
dim last_row as integer
with xlworksheet
last_row = .Cells(.Rows.Count, "A").End(XlDirection.xlUp).row
Dim year_month_range As Range
Dim pf_range As Range
year_month_range = .Range(.Cells(2, 2), .Cells(last_row, 2))
pf_range = .Range(.Cells(2, 2), .Cells(last_row, 12))
Dim dateitem as integer
dateitem = 1701
.Cells(j, 27) = xlapp.WorksheetFunction.CountIfs(year_month_range, dateitem, pf_range, "F*")
end with
它抛回了一种模棱两可的异常:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll Additional information: CountIfs method of WorksheetFunction class failed*
我正在使用此数据并使用其他 Worksheet 函数在我尝试使用 countifs()
的上方和下方成功,所以我知道工作簿和 worksheet 已声明并且正确初始化。我担心可能只是缺少一些关于使用 countifs()
的关键信息
Each additional range must have the same number of rows and columns as
the criteria_range1 argument. The ranges do not have to be adjacent to
each other.
变化:
pf_range = .Range(.Cells(2, 2), .Cells(last_row, 12))
至:
pf_range = .Range(.Cells(2, 12), .Cells(last_row, 12))
我正在编写一些代码以从测试结果文件中提取数据,并在 excel 文件中以有意义的位汇总数据,因为最终可能会查看数据的每个人都有excel.
我在文件中的 sheet 中列出了数据,其中 A 到 M 是数据,U 到 AB 是摘要 table。 B 列包含测试发生的年份和月份,格式为 YYMM
,L 列包含测试是通过还是失败 "PASS" 或 "FAIL" 我正在尝试执行下面的代码使用 dateitem
,在我下面的示例中,它是 2017 年 1 月,作为代表 B 列的范围的标准,并使用 "F*" 作为代表 L
Imports Microsoft.Office.Interop.Excel
Dim xlapp As Application = New Application()
Dim xlworkbook As Workbook
Dim xlworksheet As Worksheet
dim last_row as integer
with xlworksheet
last_row = .Cells(.Rows.Count, "A").End(XlDirection.xlUp).row
Dim year_month_range As Range
Dim pf_range As Range
year_month_range = .Range(.Cells(2, 2), .Cells(last_row, 2))
pf_range = .Range(.Cells(2, 2), .Cells(last_row, 12))
Dim dateitem as integer
dateitem = 1701
.Cells(j, 27) = xlapp.WorksheetFunction.CountIfs(year_month_range, dateitem, pf_range, "F*")
end with
它抛回了一种模棱两可的异常:
An unhandled exception of type 'System.Runtime.InteropServices.COMException' occurred in mscorlib.dll Additional information: CountIfs method of WorksheetFunction class failed*
我正在使用此数据并使用其他 Worksheet 函数在我尝试使用 countifs()
的上方和下方成功,所以我知道工作簿和 worksheet 已声明并且正确初始化。我担心可能只是缺少一些关于使用 countifs()
Each additional range must have the same number of rows and columns as the criteria_range1 argument. The ranges do not have to be adjacent to each other.
变化:
pf_range = .Range(.Cells(2, 2), .Cells(last_row, 12))
至:
pf_range = .Range(.Cells(2, 12), .Cells(last_row, 12))