首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用PowerShell计数Excel中的非空单元格

用PowerShell计数Excel中的非空单元格
EN

Stack Overflow用户
提问于 2021-10-25 09:58:44
回答 1查看 117关注 0票数 0

我需要知道在Excel中使用PS脚本的非空单元格的数量。

代码语言:javascript
运行
复制
$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("")

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-25 11:30:42

WorksheetFunctionExcel.Application类的属性,而不是Excel.Range类的属性,因此您的代码需要如下所示:

代码语言:javascript
运行
复制
$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,而是从应用程序调用它,并将范围作为参数传递。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69706042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档