在VBA用户表单查找中插入超链接
我已经创建了一个userform,其中包括许多项。在另一个工作表中,我有一个带有特定URL的项目列表。我希望Userform为我插入超链接。我已经想出了下面的代码,当它不是irow的一部分时可以工作 我用下面的代码做了一个测试,效果非常好在VBA用户表单查找中插入超链接,vba,excel,hyperlink,userform,Vba,Excel,Hyperlink,Userform,我已经创建了一个userform,其中包括许多项。在另一个工作表中,我有一个带有特定URL的项目列表。我希望Userform为我插入超链接。我已经想出了下面的代码,当它不是irow的一部分时可以工作 我用下面的代码做了一个测试,效果非常好 Sub Hyperlinkstest() Dim rng As Range Dim ws As Worksheet Dim ws2 As Worksheet Set ws = Sheets("Sheet1") Set ws2 = Sheets("Sheet
Sub Hyperlinkstest()
Dim rng As Range
Dim ws As Worksheet
Dim ws2 As Worksheet
Set ws = Sheets("Sheet1")
Set ws2 = Sheets("Sheet2")
Set rng = ws.Range("B2")
rng.Parent.Hyperlinks.Add Anchor:=rng, Address:=Application.WorksheetFunction.VLookup(ws.Range("A2"), ws2.Range("A:B"), 2, False), TextToDisplay:="Info"
End Sub
然而,当我试图将它集成到我的用户表单中时,我发现几乎没有成功。有人能帮忙吗?我遇到的问题是编写代码。这意味着我的ws.cells行(iRow,4.Value=。。。具有预期的语句结尾。我确信我只是忽略了这里的一些东西,需要一双新的眼睛
Private Sub CommandButton1_Click()
Dim iRow As Long
Dim ws As Worksheet
Dim ws2 As Worksheet
Dim rng As Range
Set ws = Worksheets("Database")
Set ws2 = Worksheets("LookupVals")
Set rng = ws.Cells(iRow, 4)
iRow = ws.Cells.Find(what:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1
If RmRef.Value = "" Then
RmRef.SetFocus
MsgBox "Please Enter Room Reference"
Exit Sub
End If
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 = OdCd.Value
ws.Cells(iRow, 6).Value = hmm.Value
ws.Cells(iRow, 7).Value = lmm.Value
ws.Cells(iRow, 8).Value = rdtyp.Value
ws.Cells(iRow, 9).Value = dtt.Value
ws.Cells(iRow, 10).Value = Wts.Value
ws.Cells(iRow, 11).Value = Qt.Value
ws.Cells(iRow, 12).Value = LP.Value
ws.Cells(iRow, 13).Value = Dc.Value
ws.Cells(iRow, 14).Value = TP.Value
'clear the data
RmRf.Value = ""
Rdd.Value = ""
OdCd.Value = ""
hmm.Value = ""
lmm.Value = ""
rdtyp.Value = ""
dtt.Value = ""
Wts.Value = ""
Qt.Value = ""
LP.Value = ""
Dt.Value = ""
TTpr.Value = ""
End Sub
您需要在
rng.Parent.Hyperlinks之后包含所有内容。将添加到括号()
中,如rng.Parent.Hyperlinks.Add(锚定:=rng,…)
。提交给函数的参数需要放在括号中,除非您不希望返回值。注意:我对这个问题投了赞成票,只是因为印刷错误。@Peh谢谢你。这是一种享受。我很好奇为什么它需要括号,但是在我的有效测试中,我不需要括号?在你的测试中,你不希望从.add()
函数得到结果,你只需要调用函数->没有括号。但是在您的命令中,单击可以得到.add()
的结果,该结果保存在ws.Cells(iRow,4)中。Value
然后->括号中。