首页 > 解决方案 > 过滤表格时如何在 IE(非默认浏览器)中使 Excel 打开超链接

问题描述

当我的编程知识为零并且既不了解 VBA 的基础知识和创建宏时,我一直在绞尽脑汁思考解决方案。我上网寻找答案,但仍然只能提出一个低于标准的解决方案,所以我正在寻求帮助。

我的问题是:我有一个包含表格的 excel 文件,并且该表格有过滤器。对于日期。在该表中,我有一列指定用于我想在 IE 上打开的链接(这不是我的默认浏览器,但它 (IE) 用于仅适用于 IE 的公司数据库)。

链接具有分配给它们的唯一 ID 号(在 G 列上),因此每个链接的格式类似于 http://site(.)com/uniqueIDnumber(与 G 列中的 ID 号连接)。我希望能够按相关日期过滤表格,这样当我点击剩余的超链接(顺便说一下,我将它们连接起来)时,Excel 会被提示在 Internet 上打开这些连接的链接资源管理器(无需登录)。

到目前为止,通过我长达数小时的浏览,我已经设法以某种方式结束了这段代码(我使用了不同的站点名称来匿名保护数据)。它所做的是一次打开它在指定列上找到的所有链接。这里是:

Sub openurl()

Dim IELocation As String
Dim MyURL As String
Dim i As Integer
Dim FinalRowFiltered As Long

FinalRowFiltered = Sheet4.Cells(Rows.Count, "A").End(xlUp).Row
For i = 2 To FinalRowFiltered
MyURL = Sheet4.Cells(i, 7)

IELocation = "C:\Program Files\Internet Explorer\iexplore.exe"

Shell (IELocation & " http://tool.filings.irc.site.com/tool/" & MyURL)

Next i

End Sub

我已经设法使用我拥有的代码(从 youtube 和 google 搜索复制)是一次打开所有链接,这是灾难性的(正如你可以想象的那样)。我只需要根据我放置过滤器后剩下的内容打开链接。请让我知道如何解决这个问题。提前致谢!

以下是为澄清而提供的图片链接。显示的是 A 到 I 列和 1-20 行

在此处输入图像描述

标签: excelvbainternet-explorer

解决方案


您可以使用 HYPERLINK() 公式执行此操作。

例如,如果您在(例如)C2 中有“https://google.com/search?q=hyperlinks”,并且在 D2 中有此公式,则单击“查看”将使用 IE 从 C2 打开 URL:

=HYPERLINK("#ShowInIE(""" & C2 & """)","View")

将此功能放在常规模块中


'This function called from worksheet HYPERLINK() formula
Function ShowInIE(url) As Range
    Dim ie As Object
    On Error Resume Next
    Set ie = GetObject("", "InternetExplorer.Application") 'get open iE?
    On Error GoTo 0
    'if was not open then open a new instance
    If ie Is Nothing Then Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.navigate url
    Set ShowInIE = Selection 'must do this in a function called from a hyplerlink
End Function

推荐阅读