我有一个脚本,它采取了列号($lc)和行号($sr / $lr)。
现在我想选择一个从($lc - 7)($sr)到($lc)($lr)的范围。
问题我不知道如何将列号转换为字母?或如何使用号码来寻址范围?
$file = "C:\Test\Excel_Matrix.xlsx"
#Program definieren
$excel = New-Object -ComObject Excel.Application
#im hintergrund ausführen
$excel.visible = $false
$table = $null
$workbook = $excel.workbooks.open($file)
$table = $workbook.Worksheets.Item("Matrix")
###########
#Basisdaten
###########
$table = $null
$workbook = $excel.workbooks.open($file)
$table = $workbook.Worksheets.Item("Matrix")
IF($table -ne $null)
{
#Last Row lr
$LetzteZeile = $table.Range("A10:A1000").Find("S999").row
# start row sr
$StartZeile = $table.Range("A10:A1000").Find("S002").row
# last column lc
$LetzteSpalte = $table.UsedRange.Find($LastText).Column
$StartZeile
$LetzteZeile
**### DON'T WORK ###**
$table.Range(.Cells($StartZeile,1),.Cells($LetzteZeile,$LetzteSpalte)
}
$workbook.Close()
$excel.Quit()
$excel = $null
谢谢你的时间。
2条答案
按热度按时间zhte4eai1#
.Cells
属性 * 的(隐含的参数化.Item()
属性)接受数字值来标识单元格,即基于1
的行号和列号。看起来你的代码的唯一问题是你没有指定一个范围/工作表对象来调用
.Cells()
:因此:
你可能认为
$table
可以在.Cells()
调用之前被省略,因为**允许你通过With
语句这样做,比如下面的例子,其中在块内的属性访问/方法调用中操作的对象是由With
操作数 * 隐含 * 的:但是,PowerShell没有 * 等效的构造。
q5iwbnjs2#
这是wath真正的工作:
但也许,很多方法去罗马。