[英]How to iterate over an Excel Range in PowerShell?
这可能很容易,但我真的很难编写完成此任务的代码!
只是作为一个概念,我希望能够在Powershell中写下Excel个单元格的范围,然后用循环遍历每个单元格,并对每个单元格中的值求和。
$range="A1:B2".Split(":")
$startrow= $range[0] -replace "[^0-9]" #equals 1
$startcol= $range[0] -replace "[^A-Z]" #equals "A"
$maxrow= $range[1] -replace "[^0-9]" #equals 2
$maxcol= $range[1] -replace "[^A-Z]" #equals "B"
$row = $startrow; $col = $startcol; $value = 0
while($col -le $maxcol){
$row = $startrow
while($row -le $maxrow){
$cellValue = [int]$ws_test.Cells.Item($row,$col).Text
$value = $value + $cellValue
$row++
}
$col++
}
据我所知。 如果我可以将宏 $startcol 和 $maxcol 转换为整数,嵌套的 while 循环将起作用,但我不知道该怎么做(例如:将“A”转换为 1,或将“AA”转换为 27)。
我可以研究另一种方法来实现这一目标吗? 我对 PowerShell 很陌生,最近几天一直在努力解决这个问题。
您可以定义工作表上的单元格范围,然后遍历该范围内的每个单元格:
Foreach ($cell in $worksheet.Range("A1:B10")) {
# Process cell values here
}
https://learn.microsoft.com/en-us/office/vba/api/excel.worksheet.range
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.