簡體   English   中英

如何在 PowerShell 中迭代 Excel 范圍?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM