2015-12-21 48 views
3

簡介:我出口的點擊率的營銷報告給我從我公司的網站產品的URL。我想要一個顯示產品標題的列作爲顯示文本,同時將文本保持爲超鏈接。這是爲使用產品標題/超級鏈接的列創建郵件合併的數據源。Excel VBA - 設置超鏈接顯示文本

我有一個VBA宏設置是這樣的:

Sub ClickableLinkTitle() 
'Dim List As Integer, result As String 
'Range("$G$2:$G$158").value = List 
'Range("$H$2:$H$158").value = result 

Dim i As Long 
Dim j As Integer 
Dim value As String 

j = 7 

For i = 2 To Rows.Count 
    If Not IsEmpty(Cells(i, 6)) Then 
     value = Cells(i, 6).value 

     If value = "http://example.com/products/db.asp?prodID=1" Then 
      Cells(i, j).value = "Product 1" 
     ElseIf value = "http://example.com/products/db.asp?prodID=2" Then 
      Cells(i, j).value = "Product 2" 
     ElseIf value = "http://example.com/products/db.asp?prodID=2" Then 
      Cells(i, j).value = "Product 3" 

     '(ect....until Product 400-and-something) 

     End If    
    End If 
Next i 
End Sub 

這將產生一個編譯錯誤,說明程序太長。我已經把它分成了多個潛艇,但我不想繼續這樣做。它也是如此手動,幾乎無法達到創建宏的目的。但由於我已經創建了它,並且建立了產品標題,所以我不想把它扔掉。

問題:什麼是創建顯示產品標題的列的最有效方法?該產品標題是我公司網站上產品的超鏈接?

集思廣益努力: 從我的宏觀提取URL &商品標題,並把它們分成兩個獨立的欄目,然後找出一個宏將二者結合起來。

Ping網址並從html標題標記中檢索頁面標題以顯示爲產品標題。

+1

我會試圖找到該列中最後使用的行,而不是在整個1048576行工作表的搜索。類似'With Sheet(Sheet1)' lastRow = .Range(「F」&.Rows.Count).End(xlUp).Row End With' – NinjaLlama

+0

'value'的Select Case可能也有幫助 – NinjaLlama

+0

@ NinjaLlama我真的不明白這會做什麼?不過謝謝你的建議。 – sshel207

回答

0

,如果你的產品名稱是以下模式告訴你,你可以做這樣的事情

For i = 2 To Rows.Count 
    If Not IsEmpty(Cells(i, 6)) Then  
      Cells(i, j).value = Replace(Replace(Value,"http://company.com/",""), "-", " ")  
    End If 
Next i 
+0

產品URL是查詢字符串 http://example.com/products/db.asp?prodID=1 http://example.com/products/db.asp?prodID=2 http://示例.com/products/db.asp?prodID = 3 所以我會假設你的答案仍然有效。我必須嘗試一下,謝謝Thorarins! – sshel207

+0

現在我想到了,我認爲這不會起作用。 – sshel207