从列中的单个目标更改为上次使用的单元格

时间:2018-05-03 15:07:07

标签: excel powershell copy-paste

我确信这是一个常见的问题。我想尝试粘贴而不是粘贴到粘贴范围内的目标单元格,转到last used cell in the column + 1,所以它只是附加目标电子表格。我需要在这里更改什么?

我已经在这里尝试了一些建议,但一直都是错误,可能是因为我在错误的地方使用$lastRow = $ExcelWorkSheet.UsedRange.rows.count + 1(没有长时间使用powershell)。

如果有人能够表现出最简单的方法,那就太棒了。谢谢!

$Excel = New-Object -ComObject "Excel.Application"
$Excel.Visible=$true 

$Workbook = $Excel.Workbooks.Open($pathxlsx)
$TempWorkbook = $Excel.Workbooks.Opentext($pathcsv)

$temp = $excel.Workbooks.Item(2)  
$temp = $temp.Worksheets.Item(1)
$CopyRange = $temp.Range("C15") 
$CopyRange.Copy()  

$workbooksheet = $Workbook.Worksheets.Item(1)
$Workbooksheet.activate()
$PasteRange = $workbooksheet.Range("C10")
$workbooksheet.Paste($PasteRange)

编辑 - 好的,让它做一些不同的事情,但仍然不是我想要的。

$Excel = New-Object -ComObject "Excel.Application"
$Excel.Visible=$true 

$Workbook = $Excel.Workbooks.Open($pathxlsx) 
$TempWorkbook = $Excel.Workbooks.Opentext($pathcsv) 

$temp = $excel.Workbooks.Item(2)  
$temp = $temp.Worksheets.Item(1) 
$CopyRange = $temp.Range("C15") 
$CopyRange.Copy()  

$workbooksheet = $Workbook.Worksheets.Item(1) 
$ExcelWorkSheet.UsedRange.rows.count
$lastRow = $workbooksheet.UsedRange.rows.count + 1
$Workbooksheet.activate()
$PasteRange = $workbooksheet.Range("C" + $lastrow) 
$workbooksheet.Paste($PasteRange)

1 个答案:

答案 0 :(得分:0)

我最终只是用一个针对此问题的强大查询来创建一个excel模板。这加上一个公式来转置数据,以便进行干净的复制并以我需要的形式粘贴我需要的数据。