我已将此公式转换为VBA,以用作FollowHyperlink方法的变量:
=SUBSTITUTE(INDEX(Sites[Base], MATCH([@Site], Sites[Site], 0)), "*", [@Variable])
如何通过列名引用Selection.Offset(0, -1)
(以防表结构发生变化)?
Dim sSite As String
If Not Intersect(Target, tb.ListColumns("Variable").DataBodyRange) Is Nothing Then
Cancel = True
sSite = WorksheetFunction.Substitute(WorksheetFunction.Index(Range("Sites[[Base]]") _
, WorksheetFunction.Match(Selection.Offset(0, -1), Range("Sites[[Site]]"), 0)), "*", "" & ActiveCell.Value & "")
ThisWorkbook.FollowHyperlink (sSite)
End If
此外,我该如何处理没有网站的情况?这不限于“变量”列:
If Intersect(Target, tb.ListColumns("Variable").DataBodyRange) <> "" And Selection.Offset(0, -1) <> "" Then
答案 0 :(得分:-1)
您可以记录它以在宏中创建vba代码。首先剪切公式,然后在“开发人员”选项卡中单击“记录”,然后将公式粘贴回去。停止录制,然后单击Visual Basic,在Module1中,您将看到带有方法名称jstl.jar
的生成的代码。