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

时间:2016-05-13 00:44:08

标签: excel function powershell powershell-v3.0 powershell-v4.0

我基本上是在尝试创建一个Power Shell函数,该函数将变量设置为excel工作表并返回最后使用的行和列。

我知道代码在函数之外工作。这是我的功能中的样子。

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“函数路径的输出:”$ path是

 function path: System.__ComObject

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

1 个答案:

答案 0 :(得分:1)

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

尝试删除[string]类型:

Function FindRange ($path)
{
...