我有一张Excel工作表,我需要在其中更新第10行到第45行的ID等列值。 我有一个混合ID" abcd_10"需要扩展到" abcd_45"。 有什么命令可以做而不是使用for-loop。因为for循环使用了很多时间,因为它一次又一次地指出单元格并且耗费时间。 我正在使用此代码,请告诉我其中的错误。
$codeName = $currentCode
$finCode = $codeName + "_" + $i
$currentSheet.Cells.Item($intRow, $currentCol).Value2 = $finCode
$range1 = $currentSheet.Range("C10");
$r = $currentSheet.Range("C10:C45");
$range1.AutoFill($r, $currentCol)
$finCode
具有初始值" abcd_10"插入到第10行,现在我需要将其扩展到" abcd_45"直到第45排。
我已经使用了AutoFill
,但它并不适合我。
答案 0 :(得分:0)
只需使用
即可$range1.AutoFill($r, 0)
second parameter指定fill type,0是默认情况,应该适用于您的情况(我只测试了VBA)。
如果您使用的是标准COM互操作,请进行更新:
以下脚本适用于我(我使用了一些未知值的默认值)。
$Filepath = "C:\tmp\posh\excel-interop\Book1.xlsx"
$Excel = New-Object -Comobject Excel.Application
$Excel.Visible = $True
$Workbook = $Excel.Workbooks.Add()
$currentSheet = $Workbook.Sheets.Item('Sheet1')
$i = 10
$codeName = 'abcd'
$finCode = $codeName + "_" + $i
$currentSheet.Cells.Item(10, 3).Value2 = $finCode
$range1 = $currentSheet.Range("C10");
$r = $currentSheet.Range("C10:C45");
$range1.AutoFill($r, 0)