avolkov2009
25-03-2024, 12:04
Здравствуйте.
Появилась необходимость автоматизировать SUBJ.
Исходные данные:
Таблица-источник - "table1.xls"
Таблица-приёмник - "table2.xls"
Название листа (одинаково для обеих таблиц) - "Товарная база"
Диапазон для копирования - "A7:CY1006"
Место вставки - "A7"
Написал следующий скрипт:
Param(
$path1 = "table1.xls",
$path2 = "table2.xls",
$worksheet1 = "Товарная база",
$worksheet2 = "Товарная база",
$range1 = "A7:CY1006",
$range2 = "A7"
)
$Excel = New-Object -ComObject excel. Application
$Excel.visible = $false
$Workbook = $excel.Workbooks.open($path1)
$Worksheet = $Workbook.WorkSheets.item($worksheet1)
$worksheet.Activate()
$range = $WorkSheet.Range($range1).EntireColumn
$range.Copy() | Out-Null
$Workbook = $excel.Workbooks.open($path2)
$Worksheet = $Workbook.Worksheets.item($worksheet2)
$worksheet.Activate()
$Worksheet.Range($range2).Activate()
$Worksheet.Paste()
$workbook.Save()
$Excel.Quit()
Remove-Variable -Name excel
[gc]::collect()
[gc]::WaitForPendingFinalizers()
На строчке "$Worksheet.Paste()" появляется ошибка:
Не удается вставить данные, так как размер копируемой области копирования не соответствует размеру области вставки. Выберите только одну ячейку в области вставки или выделите в ней диапазон того же размера, что и вставляемая область, и повторите попытку.
Пробовал в таблице-приёмнике выбирать такой же диапазон ("A7:CY1006"), всё равно ошибка.
Подскажите, что я сделал не правильно?
Появилась необходимость автоматизировать SUBJ.
Исходные данные:
Таблица-источник - "table1.xls"
Таблица-приёмник - "table2.xls"
Название листа (одинаково для обеих таблиц) - "Товарная база"
Диапазон для копирования - "A7:CY1006"
Место вставки - "A7"
Написал следующий скрипт:
Param(
$path1 = "table1.xls",
$path2 = "table2.xls",
$worksheet1 = "Товарная база",
$worksheet2 = "Товарная база",
$range1 = "A7:CY1006",
$range2 = "A7"
)
$Excel = New-Object -ComObject excel. Application
$Excel.visible = $false
$Workbook = $excel.Workbooks.open($path1)
$Worksheet = $Workbook.WorkSheets.item($worksheet1)
$worksheet.Activate()
$range = $WorkSheet.Range($range1).EntireColumn
$range.Copy() | Out-Null
$Workbook = $excel.Workbooks.open($path2)
$Worksheet = $Workbook.Worksheets.item($worksheet2)
$worksheet.Activate()
$Worksheet.Range($range2).Activate()
$Worksheet.Paste()
$workbook.Save()
$Excel.Quit()
Remove-Variable -Name excel
[gc]::collect()
[gc]::WaitForPendingFinalizers()
На строчке "$Worksheet.Paste()" появляется ошибка:
Не удается вставить данные, так как размер копируемой области копирования не соответствует размеру области вставки. Выберите только одну ячейку в области вставки или выделите в ней диапазон того же размера, что и вставляемая область, и повторите попытку.
Пробовал в таблице-приёмнике выбирать такой же диапазон ("A7:CY1006"), всё равно ошибка.
Подскажите, что я сделал не правильно?