【问题标题】:Programmatically Add Links to Excel Spreadsheet以编程方式将链接添加到 Excel 电子表格
【发布时间】:2017-04-05 03:50:28
【问题描述】:

我正在努力通过 PowerShell 添加指向可变长度电子表格的链接,但无论如何我都会遇到错误。这是我目前正在尝试制作的循环,它嵌套在一个 excel comobject 中, $sheet 代表 $excel.activeworkbook.activesheet :

$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 电子表格的链接,但每次尝试时都会出现格式错误。

【问题讨论】:

  • $r 不是RangeShape。这是Add Method on MSDN
  • @BenH,您是对的,先生。将 $r 更改为 $sheet.range("A"+$v) 解决了这个问题。
  • @BenH,如果您要发表评论作为答案,我会接受。

标签: excel powershell powershell-5.0


【解决方案1】:

$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++
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-19
    • 2011-12-21
    • 1970-01-01
    • 2014-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多