2017-04-04 141 views
1

我正在努力通过PowerShell向可变长度的电子表格添加链接,无论我如何操作,我都会遇到错误。这是目前我试图做的工作,这是嵌套一个Excel comobject内循环,以$表代表$ excel.activeworkbook.activesheet:以编程方式将链接添加到Excel电子表格

$v = 2 
foreach($i in $list){ 
    $r = "A"+$v 
    $link = "www.url.com" 
    $sheet.Hyperlinks.Add($r,$link) 
    $v++ 
} 

哪个不断抛出以下错误:

Exception setting "Add": Cannot convert the "A2" value of type "string" to type "Object". 
At C:\hyperlink_wip.ps1:31 char:5 
+  $sheet.Hyperlinks.Add($r,$link) 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], MethodException 
    + FullyQualifiedErrorId : RuntimeException 

在这个例子中,$ list是一个列表,其中包含来自该电子表格一列的信息,并且其长度始终与电子表格本身的长度相同。电子表格还有一个标题行,所以我想要超链接的单元格从A2开始。我也尝试了方法here用于添加Excel电子表格的链接,但每次尝试时都得到不正确的格式错误。

+2

'$ r'是不是一个['Range'](https://msdn.microsoft.com/ en-us/library/office/ff838238.aspx)或'Shape'。这里是[MSDN上的添加方法](https://msdn.microsoft.com/en-us/library/office/ff822490.aspx) – BenH

+0

@BenH,你是对的,先生。将$ r更改为$ sheet.range(“A”+ $ v)解决了问题。 – Cameron

+0

@BenH,如果你想发表你的评论作为答案,我会接受它。 – Cameron

回答

2

$r不是RangeShape。这里的Add Method on MSDN

这里有一个如何,你可以在你的代码中使用它的一个例子:

$v = 2 
foreach($i in $list){ 
    $r = $sheet.range("A"+$v) 
    $link = "www.url.com" 
    $sheet.Hyperlinks.Add($r,$link) 
    $v++ 
} 
相关问题