#excel #vba #powershell #embed #createoleobject
#excel #vba #powershell #Внедрить #createoleobject
Вопрос:
Можно ли встроить объект в файл Excel?
Я пытался использовать "$sheet.OLEObjects().Add()
, но не смог получить правильные параметры для встраивания объекта. Мне интересно, возможно ли это сделать с помощью powershell.
Буду признателен за любую помощь по этому вопросу.
Редактировать : 21/12/2020
Вот код, на который я ссылался :
$src = "C:TempTempsrc.xlsm"
$dst="C:TempTempdst.xlsx"
$excel=New-Object -ComObject Excel.Application
$excel.visible = $false
$excel.DisplayAlerts=$false
$book = $excel.workbooks.Open($src, $null, $false)
$sheet = $excel.worksheets.item("sheetname")
[void]$sheet.Activate()
$sheet.OLEObjects().Add($missing, $dst, $false, $true,$missing, 1, "Attachment', $missing, $missing, $missing)
[void] $book.save()
[void]$book.Close()
[void]$book.Quit()
Приведенный выше код выдает ошибку «Не удалось получить свойство Add класса OLEObjects.
Также попробовал приведенное ниже, которое фактически прикрепляет пустой лист к woorkbook, но не к целевому файлу, а также выдает то же сообщение об ошибке, что и выше.
$sheet.OLEObjects().Add(‘excel.sheet’, $отсутствует, $ false, $ true, $ dst, 1, «Вложение», $ отсутствует, $ отсутствует, $ отсутствует)
Комментарии:
1. С какими параметрами у вас возникли проблемы? Вот ссылка на документацию по методу: docs.microsoft.com/en-us/office/vba/api/excel.oleobjects.add
2. Пожалуйста, добавьте больше кода, возможно, заявление об ошибке, чтобы мы лучше понимали, с чем мы здесь имеем дело.
3. Обновлено сообщение выше
Ответ №1:
Получил его с помощью приведенных ниже двух дополнений к строке кода :
$ OLEObjects = $sheet.OLEObjects($ отсутствует)
$ OLEObjects.Добавить($missing, $ dst, $false, $ true, «WINWORD.EXE «, «LabelName», $отсутствует, $ отсутствует, $отсутствует)