2016-02-17 21 views
1

我的公司對營銷活動使用短網址,這些網址通過跟蹤重定向到網址。例如:將瀏覽器中的網址複製到Excel中

example.com/campaign

將重定向到:

example.com/utm_source= 一個 & utm_medium = & utm_term = & utm_content = 四個 & utm_campaign =

我有一個Excel短的URL列表文件,但跟蹤網址未列出。目前的過程是手動打開每個鏈接並複製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 

然而,這只是(意料之中)帶回原來的超鏈接。

如何恢復跟蹤網址?理想情況下,無需安裝任何其他軟件(因爲我公司的IT部門是一場噩夢),但如果這是唯一的選擇,那麼就這樣吧。

回答

3

我相信這會做你想要什麼:

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描述的標準流程......我只是從響應中獲取適當的頭文件。

+0

完美的作品,謝謝。並感謝您的解釋。 – Moogle

1

你想要.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