2017-06-13 108 views
0

有人可以幫助我在我需要的時間。我創建了一個userform,輸入的hyperlink取決於從listbox的下拉菜單。運行時錯誤1004與VBA添加超鏈接

儘管超級鏈接實際上要在按下提交按鈕的時候,我還在接受

運行時錯誤1004應用程序定義或對象定義錯誤的錯誤消息。

當調試ws.cells(iRow, 4)是該行強調

Private Sub Comm1_Click() 

Dim iRow As Long 
Dim ws As Worksheet 
Dim ws2 As Worksheet 
Dim rng As Range 

Set ws = Worksheets("QttOutlay") 
Set ws2 = Worksheets("LookupVals") 

iRow = ws.Cells.Find(what:="*", SearchOrder:=xlRows, _ 
    SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1 

Set rng = ws.Cells(iRow)  

    ws.Cells(iRow, 2).Value = RmRef.Value 
    ws.Cells(iRow, 3).Value = RetMod.Value 
    ws.Cells(iRow, 4).Value = rng.Parent.Hyperlinks.Add(Anchor:=rng, Address:=WorksheetFunction.VLookup(RetMod.Value, ws2.Range("A:B"), 2, False), TextToDisplay:="Info") 
    ws.Cells(iRow, 5).Value = OrdCod.Value 
    ws.Cells(iRow, 6).Value = hmm.Value 
    ws.Cells(iRow, 7).Value = lmm.Value 
    ws.Cells(iRow, 8).Value = rdtype.Value 
    ws.Cells(iRow, 9).Value = dtt.Value 
    ws.Cells(iRow, 10).Value = Wtt.Value 
    ws.Cells(iRow, 11).Value = Qt.Value 
    ws.Cells(iRow, 12).Value = LPc.Value 
    ws.Cells(iRow, 13).Value = Dt.Value 
    ws.Cells(iRow, 14).Value = (LPc.Value * Dt.Value) * Qt.Value 

End Sub 

回答

2
  1. Hyperlinks.Add Method回報您正在嘗試將分配給一個細胞值的超鏈接對象:ws.Cells(iRow, 4).Value = rng.Parent.Hyperlinks.Add(…)。這是行不通的。

  2. 我想這ws.Cells(iRow, 4),就是要像超鏈接的錨:Anchor:=ws.Cells(iRow, 4)

所以不是

ws.Cells(iRow, 4).Value = rng.Parent.Hyperlinks.Add(Anchor:=rng, Address:=WorksheetFunction.VLookup(RetMod.Value, ws2.Range("A:B"), 2, False), TextToDisplay:="Info") 

你應該是這樣的

更換整條生產線
ws.Hyperlinks.Add Anchor:=ws.Cells(iRow, 4), Address:=WorksheetFunction.VLookup(RetMod.Value, ws2.Range("A:B"), 2, False), TextToDisplay:="Info"