我需要知道在Excel中使用PS脚本的非空单元格的数量。
$excel = new-object -comobject excel.application
$excel.visible = $false
$Workbook = $excel.workbooks.open($FileDir)
$Worksheets = $Workbooks.worksheets
$Worksheet = $Workbook.Worksheets.Item(1)
$Range1 = $Excel.Range("8:8")
$Range1.Count
$Workbook.Save()
$excel.Quit()这段代码给我16384,这是Excel中列的总数。
Excel函数COUNTA()在excel中工作,得到109,这是正确的结果。
我可能需要这个https://learn.microsoft.com/en-gb/office/vba/api/excel.worksheetfunction.counta,但我的实现不起作用。$Range1.WorksheetFunction.CountA("")
发布于 2021-10-25 11:30:42
WorksheetFunction是Excel.Application类的属性,而不是Excel.Range类的属性,因此您的代码需要如下所示:
$excel = new-object -comobject Excel.Application;
# set up some dummy data
# note - we'll leave A4 blank
$workbook = $excel.Workbooks.Add();
$worksheet = $workbook.Worksheets.Item(1);
$worksheet.Range("A1").Value = "a"
$worksheet.Range("A2").Value = "b"
$worksheet.Range("A3").Value = "c"
#$worksheet.Range("A4").Value = "d"
$worksheet.Range("A5").Value = "e"
$range = $worksheet.Range("A1:A5");
$count = $excel.WorksheetFunction.CountA($range);
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
write-host $count
# 4而不是尝试在范围上调用WorksheetFunction,而是从应用程序调用它,并将范围作为参数传递。
https://stackoverflow.com/questions/69706042
复制相似问题