我基本上是在尝试创建一个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工作表作为参数传递?我花了几个小时研究和尝试,但没有运气。
答案 0 :(得分:1)
我认为你混淆了它是否是电子表格文件名(文本字符串,$ path是一个合理的名称),或者它是否是连接到工作表的正在运行的Excel实例的实时COM对象。鉴于你直接使用$ path.UsedRange的方式,并且从输出消息中,我猜它应该是后者 - 所以你将参数转换为[string]
的方式就是打破它。
尝试删除[string]类型:
Function FindRange ($path)
{
...