如何在 table 被过滤后在 IE(非默认浏览器)中打开 Excel 超链接
How to make Excel Open Hyperlinks in IE (non-default browser) when table is filtered
当我的编程知识为零并且既不了解 VBA 和创建宏的基础知识时,我一直在绞尽脑汁思考解决方案。上网找了答案,还是得不到解决方案,求助。
我的问题是:我有一个 excel 文件,其中有一个 table,并且 table 有过滤器。对于日期。在那个 table 中,我有一个指定用于 links 的列,我想在 IE 上打开它(这不是我的默认浏览器,但它 (IE) 是用于公司数据库的适用于 IE)。
link 具有分配给它们的唯一 ID 号(在 G 列上),因此格式类似于 http:// site(.)com/uniqueIDnumber(与列中的 ID 号连接G) 每 link。我想要的是能够按相关日期过滤 table,这样当我单击剩余的 hyperlinks(顺便说一句,我将其串联)时,Excel 将提示在 Internet Explorer 上打开这些串联的 link(无需登录)。
到目前为止,经过数小时的浏览,我以某种方式设法得到了这段代码(我使用了不同的站点名称来匿名以保护数据)。它所做的是立即打开它在指定列上找到的所有 link。这是:
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 搜索中复制)所做的是一次打开所有 link,这是灾难性的(你可以想象).我只需要根据我放置过滤器后剩下的内容打开links。请让我知道如何解决这个问题。提前致谢!
下面是一张图片 link 以供说明。显示的是 A 到 I 列和 1-20 行
您可以使用 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
所以如果我理解你的 post,你可以连接 URL,你只需要在 IE 中打开它并且你的 Shell 行不起作用?
一种可能的解决方案是使用 InternetExplorer 对象。有很多关于如何使用它的信息。在此站点上搜索应该会为您提供很多信息。
打开 URL 的基本用例如下所示:
Dim ieApp As InternetExplorer
Set ieApp = New InternetExplorer
ieApp.Visible = True
‘url is your concatenated url variable
ieApp.Navigate url
转到参考并启用 Microsoft Internet 控件以使用该对象。
当我的编程知识为零并且既不了解 VBA 和创建宏的基础知识时,我一直在绞尽脑汁思考解决方案。上网找了答案,还是得不到解决方案,求助。
我的问题是:我有一个 excel 文件,其中有一个 table,并且 table 有过滤器。对于日期。在那个 table 中,我有一个指定用于 links 的列,我想在 IE 上打开它(这不是我的默认浏览器,但它 (IE) 是用于公司数据库的适用于 IE)。
link 具有分配给它们的唯一 ID 号(在 G 列上),因此格式类似于 http:// site(.)com/uniqueIDnumber(与列中的 ID 号连接G) 每 link。我想要的是能够按相关日期过滤 table,这样当我单击剩余的 hyperlinks(顺便说一句,我将其串联)时,Excel 将提示在 Internet Explorer 上打开这些串联的 link(无需登录)。
到目前为止,经过数小时的浏览,我以某种方式设法得到了这段代码(我使用了不同的站点名称来匿名以保护数据)。它所做的是立即打开它在指定列上找到的所有 link。这是:
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 搜索中复制)所做的是一次打开所有 link,这是灾难性的(你可以想象).我只需要根据我放置过滤器后剩下的内容打开links。请让我知道如何解决这个问题。提前致谢!
下面是一张图片 link 以供说明。显示的是 A 到 I 列和 1-20 行
您可以使用 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
所以如果我理解你的 post,你可以连接 URL,你只需要在 IE 中打开它并且你的 Shell 行不起作用?
一种可能的解决方案是使用 InternetExplorer 对象。有很多关于如何使用它的信息。在此站点上搜索应该会为您提供很多信息。
打开 URL 的基本用例如下所示:
Dim ieApp As InternetExplorer
Set ieApp = New InternetExplorer
ieApp.Visible = True
‘url is your concatenated url variable
ieApp.Navigate url
转到参考并启用 Microsoft Internet 控件以使用该对象。