Я пытался выбрать от A55 до последней строки, заполненной из столбца A в Excel, с помощью сценария Powershell.
Мой первый скрипт работал отлично, а именно:
$lastRow = $ivWorksheet.Cells.Item($ivWorksheet.Rows.Count, "A").End(3).Row
$ivRange = $ivWorksheet.Range("A55:A$lastRow")
Однако когда я изменил верхнее на нижнее, это не сработало.
$startRow = 55
$lastRow = $ivWorksheet.Cells.Item($ivWorksheet.Rows.Count, "A").End(3).Row
$ivRange = $ivWorksheet.Range("A$startRow:A$lastRow")
Я ожидал, что оба сценария дадут одинаковый результат, но последний не сработал. Не могли бы вы подсказать, в чем причина?
$startRow:A
интерпретируется как переменная во второй попытке, и поскольку эта переменная не определена, она расширяется до null
:
$startRow = 55; $lastRow = 123
"A$startRow:A$lastRow" # => A123
Вам нужно использовать ${ }
для ее разделения, другими словами, чтобы указать, где переменная начинается и где она заканчивается, чтобы PowerShell мог ее правильно разрешить. Дополнительную информацию см. в разделе Имена переменных, содержащие специальные символы.
$startRow = 55; $lastRow = 123
"A${startRow}:A$lastRow" # => A55:A123
Большое спасибо. Он работает отлично! Еще один урок получен :)
Каков результат второго кода? Выдает ошибку, в чем проблема?