根据我的last question,我现在希望Excel表格中的数据保留Excel工作表的当前格式。基本上,Excel工作表具有背景颜色和已为单元格设置的特定边框。当我使用以下内容将数据复制到单元格时
$Excel = New-Object -ComObject excel.application
$Excel.visible = $true
$WorkBook = $excel.Workbooks.Open($ExportCsv)
$WorkBook2 = $excel.Workbooks.open($Template)
$Worksheet = $Workbook.WorkSheets.item($ExpCsvShort)
$Worksheet.activate()
#A Range Copy
$rangeAc = $WorkSheet.Range(“A2:A26”)
$rangeAc.Copy() | out-null
#Select sheet 2
$Worksheet2 = $Workbook2.Worksheets.item(“Worklog”)
$worksheet2.activate()
#A Range Paste
$rangeAp = $Worksheet2.Range(“K6:K30”)
$Worksheet2.Paste($rangeAp)
#C Range Copy
$rangeCc = $WorkSheet.Range(“C2:C26”)
$rangeCc.Copy() | out-null
#C Range Paste
$rangeCp = $Worksheet2.Range(“O6:O30”)
$Worksheet2.Paste($rangeCp)
#D Range Copy
$rangeDc = $WorkSheet.Range(“D2:D26”)
$rangeDc.Copy() | out-null
#D Range Paste
$rangeDp = $Worksheet2.Range(“L6:L30”)
$Worksheet2.Paste($rangeDp)
我丢失了单元格的格式。我看到了this question并尝试了.PasteSpecial()
方法,该方法失败了(无法调用空表达式),但数据仍然存在。
当我粘贴数据而没有完全重写我的脚本时,有没有办法保留我的单元格背景颜色和边框?是否有位置我可以在现有代码中添加.PasteSpecial()
以匹配目标格式?
答案 0 :(得分:0)
想出来。我在想我的路线应该是:
super.componentdDidAppear()
但它应该是:
$rangeAp = $Worksheet2.Range(“K6:K30”)
$Worksheet2.PasteSpecial(-4163, $rangeAp)
我误解了如何调用$rangeAp = $Worksheet2.Range(“K6:K30”)
$rangeAp.PasteSpecial(-4163)
。我希望你们在这方面比我更聪明!