将Excel类型变量传递到PowerShell函数

问题描述:

我基本上试图创建一个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"} 

的写主机输出 “功能的路径:” $ path是

function path: System.__ComObject 

有没有人能帮助我弄清楚如何通过excel工作表中作为参数?我花了几个小时研究和尝试,但没有运气。

我想你会混淆它是否是电子表格文件名(文本字符串,$ path是一个合理的名称),或者它是否是连接到工作表的正在运行的Excel实例的活动COM对象。考虑到你直接使用$ path.UsedRange的方式,并且从输出消息中,我猜它应该是后者 - 所以你将参数转换为[string]的方式正在打破它。

尝试取出[字符串]类型:

Function FindRange ($path) 
{ 
...