运行时错误1004与vba添加超链接

有人可以帮助我在我需要的时间。 我创build了一个用户userform ,它依赖于列表listbox下拉列表input一个hyperlink

尽pipe超链接实际上在按下提交button时,我仍然收到错误信息

运行时错误1004.应用程序定义的或对象定义的错误。

当我debuggingws.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 

  1. Hyperlinks.Add方法返回一个超链接对象,你试图分配给一个单元格值: 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"