Как установить имя листа Excel с переменной powershell? - PullRequest
1 голос
/ 13 февраля 2020

Я пытаюсь установить имя листа Excel с помощью Powershell, используя переменную, но получаю эту ошибку:

Exception from HRESULT: 0x800A03EC
At line:14 char:1
+ $ws.Name = $RequestTitle
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], COMException
    + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException

Вот фрагмент кода:

# create new excel object 
$excel = New-Object -ComObject excel.application

# show the excel object 
$excel.visible = $True

# add a workbook 
$workbook = $excel.Workbooks.Add()

# create a variable referencing the first sheet of the wb
$ws= $workbook.Worksheets.Item(1)

# change the name of the sheet 
$ws.Name = $NewSheetName

Но когда я делаю что-то вроде: $ws.Name = "some string" все работает нормально, без ошибок. Я также пытался использовать метод $NewSheetName.ToString() безрезультатно.

Каков наилучший способ ссылки на переменную для именования листа? Любая помощь будет оценена!

1 Ответ

1 голос
/ 13 февраля 2020

Использование такого утверждения позаботится об этом. Поставьте кавычки вокруг имени переменной.

# change the name of the sheet 
$ws.Name = "$NewSheetName"

Я не знаю, почему, но имя листа Excel требует строку в кавычках, даже если используется переменная, которая явно является строкой.

Примечание

Протестировано с powershell v5 и Office 2013, Office 365, Код с переменной $ без кавычек работает нормально. Не уверен, что именно вызывает проблему, когда вы должны использовать double quotes вокруг имени переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...