0

Я в основном пытаюсь создать функцию Power Shell, которая принимает переменную, установленную на листе excel, и возвращает последние использованные строки и столбцы.Передача типа Excel Переменная в функцию PowerShell

Я знаю, что код работает вне функции. Вот как это выглядит в моей функции.

Function FindRange ([string] $path) 
{ 
$mainRng = $path.UsedRange.Cells 
$ColCount = $mainRng.Columns.Count 
$RowCount = $mainRng.Rows.Count 
$xRow = $RowCount 
$xCol = $ColCount 
Write-Host "function DEBUG xrow:" $xRow 
Write-Host "function DEBUG xcol: " $xCol 
Write-Host "function path:" $path 
} 
FindRange $BTWSRawSheets 

$ BTWSRawSheets является:

$BTWSRawSheets = $wbBTWS.worksheets | where {$_.name -eq "Export Worksheet"} 

Выход Write-Host "путь функции:" $ путь

function path: System.__ComObject 

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

ответ

1

Я думаю, что вы смешиваете, является ли это имя файла электронной таблицы (текстовая строка, $ path является разумным именем для нее) или же это живой COM-объект работающего экземпляра Excel, связанный с листом. Учитывая то, как вы используете $ path.UsedRange напрямую, и из выходного сообщения, я предполагаю, что он должен быть последним - так, как вы бросаете параметр в [string], его ломает.

Попробуйте удалить [строка] Тип:

Function FindRange ($path) 
{ 
... 

 Смежные вопросы

  • Нет связанных вопросов^_^