使用Powershell将表追加到Excel文件(最后一行)的末尾

我写了一个Powershell脚本,从Microsoft Word中复制表格并将其粘贴到Excel文档中。 我想把它追加到列A中最后使用的行之后

到目前为止我得到了这个代码:

$Excel = New-Object -ComObject Excel.Application $Excel.Visible = $True $ExcelWordBook = $Excel.Workbooks.Open($ExcelPath) $ExcelWorkSheet = $Excel.WorkSheets.item("Sheet1") $ExcelWorkSheet.activate() 

这是我困惑的地方,我想能够find在Excel工作表中使用的最后一行。

 $lastRow = $ExcelWorkSheet.UsedRange.rows("A").count $nextRow = $lastRow + 1 $ExcelWorkSheet.Range("A$nextRow").Select $ExcelWorkSheet.Paste() 

在这之后我觉得我很亲密。 我试图使用Office Interlop中的UsedRange属性来确定Excel工作表中的最后一行。 ( http://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet.usedrange(v=vs.80).aspx )任何想法?

谢谢我结束了一个更加dynamic的路线,而不是使用“A9924082480198”作为范围的结尾。

 $Excel = New-Object -ComObject Excel.Application $Excel.Visible = $True $ExcelWordBook = $Excel.Workbooks.Open($ExcelPath) $ExcelWorkSheet = $Excel.WorkSheets.item("sheet1") $ExcelWorkSheet.activate() $lastRow = $ExcelWorkSheet.UsedRange.rows.count + 1 $Excel.Range("A" + $lastrow).Activate() $ExcelWorksheet.Paste() 

$ExcelWorkSheet.UsedRange返回的对象具有属性rows (不是方法,不能使用参数)。 这意味着$ExcelWorkSheet.UsedRange.rows.count可以工作,但不会给你想要的结果(它会给你最长的列的行数)。

要在列A中最后使用的单元格之后附加内容,请尝试以下操作:

 $xldown = -4121 # see: http://msdn.microsoft.com/en-us/library/bb241212(v=office.12).aspx $xlup = -4162 $Excel = New-Object -ComObject Excel.Application $Excel.Visible = $True $ExcelWordBook = $Excel.Workbooks.Open($ExcelPath) $ExcelWorkSheet = $Excel.WorkSheets.item("Sheet1") $ExcelWorkSheet.activate() # Find the last used cell $lastRow = $ExcelWorksheet.cells.Range("A1048576").End($xlup).row $nextRow = $lastRow + 1 $range = $ExcelWorkSheet.Range("A$nextRow") $ExcelWorkSheet.Paste($range)