2017-06-13 106 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"