【问题标题】:Copy url from browser into Excel将浏览器中的 url 复制到 Excel 中
【发布时间】:2016-02-17 11:48:57
【问题描述】:

我的公司在营销活动中使用短 URL,这些短 URL 会重定向到具有跟踪功能的 URL。例如:

example.com/campaign

将重定向到:

example.com/utm_source=&utm_medium=&utm_term=&utm_content=&utm_campaign=五个

我有一个包含短 URL 列表的 excel 文件,但没有列出跟踪 URL。目前的流程是手动打开每个链接,复制网址。

有没有办法使用 VBA 将跟踪 URL 复制到 excel 中?

到目前为止,我已经探索了以下内容:

Dim ie As Object
Set ie = CreateObject("Internetexplorer.Application")
ie.Navigate Cells(1, 1)

但我找不到将新 URL 复制回 excel 的方法。

我也试过了:

Dim link As Hyperlink
Cells(1, 1).Select
Set link = ActiveSheet.Hyperlinks.Add(Anchor:=Cells(1, 1), Address:=Cells(1, 1))
link.Follow
Cells(1, 2) = link.Address

然而,这只是(毫不奇怪)带回了原始超链接。

如何恢复跟踪 URL?理想情况下无需安装任何其他软件(因为我公司的 IT 部门是一场噩梦),但如果这是唯一的选择,那就这样吧。

【问题讨论】:

    标签: vba excel url


    【解决方案1】:

    我相信这会做你想要的:

    Set webClient = CreateObject("WinHttp.WinHttpRequest.5.1")
    webClient.Option(6) = False
    webClient.Open "GET", Cells(1, 1), False
    webClient.send ("")
    Cells(1, 2) = webClient.GetResponseHeader("Location")
    

    我从这个other answer 得到了这个想法。

    您要做的是获取您要重定向到的位置。

    重定向遵循here... 描述的标准流程,我只是从响应中获取适当的标头。

    【讨论】:

    • 完美运行,谢谢。并感谢您的解释。
    【解决方案2】:

    您想要.LocationURL 属性

    Const READYSTATE_COMPLETE As Long = 4
    Dim IE As Object
    
    Set IE = CreateObject("InternetExplorer.Application")
    
    IE.Navigate Cells(1, 1).Value
    
    '// Wait for page to finish loading
    While IE.Busy Or IE.ReadyState <> READYSTATE_COMPLETE
        DoEvents
    Wend
    
    Cells(1, 2).Value = IE.LocationURL
    

    【讨论】:

      猜你喜欢
      • 2015-06-03
      • 2013-02-01
      • 1970-01-01
      • 2015-02-19
      • 1970-01-01
      • 2015-03-15
      • 2021-04-27
      • 2020-10-28
      • 1970-01-01
      相关资源
      最近更新 更多