我有一个 ms excel 2007 工作表,其中有一列(A)是超链接,以这种方式使用 excel 函数=HYPERLINK(A2,"url"
。
我怎样才能(如果可能的话)在非默认浏览器中打开该列上的所有单元格?
答案1
如果您输入带有 exe 文件的浏览器路径并在后面放置 URL,它将使用该浏览器打开。
例如
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" http://superuser.com/questions/1079979/how-can-i-make-an-excel-column-of-hyperlinks-open-in-non-default-browser
不幸的是,您不能在 ExcelHyperlink
函数中使用该函数,所以我们需要一种解决方法。
一种解决方案是创建一个批处理文件并设置超链接以运行该批处理文件。您需要做的就是将代码复制到文本文件中,然后将其保存为 .bat
另一个解决方案是使用 VBA。
按 alt + F11,然后将以下代码粘贴到“ThisWorkbook”中。
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
If Target.Name = "asd" Then 'Or you can identify a cell using it's range instead of its name If Target.Range.Address = "$A$1" Then
Shell ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe http://superuser.com/questions/1079979/how-can-i-make-an-excel-column-of-hyperlinks-open-in-non-default-browser")
End If
End Sub
然后你必须通过右键单击,超链接,选择来创建单元格中的超链接在本文档中的位置,那就好了。
答案2
这个问题有点老了,但它在一个较新的类似问题中被引用,所以我添加了一个更新的答案。在我的示例中,我的电子表格有三列,DATE, URL, OTHER_INFO
和网址列中有链接。
凭借优秀的导入Excel模块变得非常容易。从模块中,使用匯入Excelcmdlet 将电子表格读入变量,然后使用 foreach 循环打开每个链接:
$excel = Import-Excel -Path "C:\Users\UserName\Desktop\Temp\test.xlsx"
$brows = "C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
foreach ($url in $excel.URL){
Start-Process -FilePath $brows -ArgumentList $url
# Write-Host $brows $url ## TEST
}
Start-Process -FilePath $brows -ArgumentList $url
这将在 Edge 的新选项卡中打开每个链接。
如果您无法使用 ImportExcel 模块,它会更冗长,但您仍然可以使用 COM 对象访问电子表格数据