使用PowerShell命令

时间:2016-07-13 06:02:09

标签: powershell powershell-v2.0 excel-interop

我有一张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,但它并不适合我。

1 个答案:

答案 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)