2017-04-04 139 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++ 
} 
相關問題