Board logo

標題: VBA表單輸入會附加連結 [打印本頁]

作者: Jared    時間: 2013-8-8 16:52     標題: VBA表單輸入會附加連結

想請問一下大大
如果在TextBox 上面輸入連結網址
存入Excel欄位只是一般字串

要添加什麼程式碼
才會讓自己輸入的欄位一率顯示 "連結路徑" 四個字
卻有連結自己輸入的位置功能呢? ?  (@@)
作者: luhpro    時間: 2013-8-9 00:04

本帖最後由 luhpro 於 2013-8-9 00:07 編輯

回復 1# Jared
TextBox1 放連結網址
TextBox2 放目的儲存格位址, 例如 :  F12
CommandButton1 啟動轉換作業
  1. Private Sub CommandButton1_Click()
  2.   With Sheets("Sheet1")
  3.     .Hyperlinks.Add Range(TextBox2.Text), TextBox1
  4.     Range(TextBox2.Text) = "連結路徑"
  5.   End With
  6. End Sub
複製代碼

作者: Jared    時間: 2013-8-9 11:46

回復 2# luhpro


謝謝大大的指教 ^^
我發現如果是在 Dim 這裡設定
TextBox1 = "file:///" & TextBox1

就會有連結路徑的功能
只是不會有指定顯示文字的效果
我再研究看看
作者: Jared    時間: 2013-8-29 11:14

本帖最後由 Jared 於 2013-8-29 11:17 編輯

我做了一個簡單的測試
但還是希望能夠指定出現文字
並有連結輸入位置的功能

因為我目前程式是使用判斷有資料就往下新增的方式
所以使用指定表單欄位的寫法就不行了...

希望能有高人協助
感激不盡 ~><

[attach]15876[/attach]

[attach]15877[/attach]
[attach]15878[/attach]
  1. Dim Q, Ar
  2. Private Sub CommandButton1_Click()
  3. Ar = "file:///" & TextBox1

  4. If TextBox1 <> "" Then

  5. Q = 1
  6.    Do Until Cells(Q, 1) = ""
  7.        Q = Q + 1
  8.    Loop
  9.    
  10.    With Sheet1
  11.    .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, 1).Value = Ar
  12.    End With

  13. Else
  14. If TextBox1 = "" Then MsgBox "連結網址未填寫,麻煩檢查!"
  15. End If


  16. End Sub

  17. Private Sub CommandButton6_Click()
  18.     UserForm1.Hide
  19. End Sub

  20. Private Sub CommandButton7_Click()
  21. TextBox1 = ""
  22. End Sub
複製代碼

作者: stillfish00    時間: 2013-8-29 11:48

回復 4# Jared
2#不是已經寫了嗎?
  1.   With Sheet1
  2.     With .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
  3.       .Hyperlinks.Add .Cells(1, 1), TextBox1
  4.       .Value = "連結路徑"
  5.     End With
  6.   End With
複製代碼

作者: Jared    時間: 2013-8-29 14:51

回復 5# stillfish00

謝謝大大解答
因為我這個測試表單只有一種資料
原本我的表單上面
有N種要填的TextBox1
連結位置只是被夾在中間

原本程式大概是這樣
  1. Dim Ar,a1,a2,a3,a4,a5
  2. a1 = ComboBox1 '資料A
  3. a2 = ComboBox2 '資料B
  4. a3 = ComboBox3 '連結位置
  5. a4 = ComboBox4 '資料D
  6. a5 = ComboBox5 '資料E

  7. Ar = Array(a1, a2, a3, a4, a5)
  8. If a1 <> "" And a2 <> "" And a3 <> "" And a4 <> "" And a5 <> ""  Then
  9. Q = 1
  10.    Do Until Cells(Q, 1) = ""
  11.        Q = Q + 1
  12.    Loop
  13.    With Sheet1
  14.    .Cells(.Rows.Count, 1).End(xlUp).Offset(1).Resize(, 5).Value = Ar
  15. End With
  16. Else
  17.       If a1 = "" Then MsgBox "資料A未填寫,麻煩檢查!"
  18.       If a2 = "" Then MsgBox "資料B未填寫,麻煩檢查!"
  19.       If a3 = "" Then MsgBox  "資料連結未填寫,麻煩檢查!"
  20.       If a4 = "" Then MsgBox  "資料D未填寫,麻煩檢查!"
  21.       If a5 = "" Then MsgBox "資料E未填寫,麻煩檢查!"
複製代碼
如果說大大解答的程式要放在裡面
那要怎麼修改才能在第三筆資料轉為連結位置
而其他筆資料再個別寫上呢?
頭痛中><
作者: stillfish00    時間: 2013-8-29 15:10

回復 6# Jared
  1.   With Sheet1
  2.     With .Cells(.Rows.Count, 1).End(xlUp).Offset(1)
  3.       .Resize(, 5).Value = Ar
  4.       .Hyperlinks.Add .Offset(, 2), ComboBox3
  5.       .Offset(, 2).Value = "連結路徑"
  6.     End With
  7.   End With
複製代碼

作者: Jared    時間: 2013-8-30 15:27

回復 7# stillfish00


謝謝大大幫忙
程式已經可以執行
後來發現提供的程式裡頭有點錯誤
應該是 TextBox1 而不是 ComboBox1
最後也忘了加上End  If
在此做個修正

大大提供的解答
是照原先方式先將資料填上去
再把要附加連結的欄位資料再另外覆加上去嗎?
不曉得還可以這樣使用
再次感謝大大的解答 (^^ )




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)