连接用户表单数据并作为超链接传递给单元格

Concatenating Userform Data And Passing To Cell As Hyperlink

我正在尝试将组合数据从用户表单传递到单元格以创建超链接。

我希望最终得到如下超链接结构:

我让所有这些独立工作:

  1. .Cells(lRow, 2).Value = "=Hyperlink(""H:\revised_action_tracker\test\"")"
  2. .Cells(lRow, 3).Value = UCase(Left(Me.cbo_action_type.Value, 2))
  3. .Cells(lRow, 4).Value = Format(CStr(Now), "yyyymmdd_hhmmss")

当我尝试将第 2 部分和第 3 部分连接到第 1 部分的工作超链接时,它抛出语法错误。

我希望超链接看起来像这样:

H:\revised_action_tracker\test\CT-20170322_162111

我觉得自己在兜圈子,如有任何帮助,我们将不胜感激。

如果您在第 1 步 之前处理第 2 部分和第 3 部分,就可以解决这个问题。这样您就可以将这两部分的文本添加到 hyperlink 公式中:

ActiveSheet.Cells(lRow, 3).Value = UCase(Left(Me.cbo_action_type.Value, 2))
ActiveSheet.Cells(lRow, 4).Value = Format(CStr(Now), "yyyymmdd_hhmmss")
ActiveSheet.Cells(lRow, 2).Value = _
    "=Hyperlink(""H:\revised_action_tracker\test\" & _
    ActiveSheet.Cells(lRow, 3).Value & ActiveSheet.Cells(lRow, 4).Value & """)"

或者,如果您不想让它变成这么长的句子,请声明一个变量来连接这些字符串,如下所示:

ActiveSheet.Cells(lRow, 3).Value = UCase(Left(Me.cbo_action_type.Value, 2))
ActiveSheet.Cells(lRow, 4).Value = Format(CStr(Now), "yyyymmdd_hhmmss")
Dim c As String: c = ActiveSheet.Cells(lRow, 3).Value & ActiveSheet.Cells(lRow, 4).Value
ActiveSheet.Cells(lRow, 2).Value = "=Hyperlink(""H:\revised_action_tracker\test\" & c & """)"

作为替代方案,如果您想在不更改文本的情况下设置 link,您可以创建一个包含简单字符串的单元格并将 hyperlink 关联到它,而不是使用公式超链接()。所以你会有这样的东西:

ActiveSheet.Cells(lRow, 2).Value = "H:\revised_action_tracker\test\"
ActiveSheet.Cells(lRow, 3).Value = UCase(Left(Me.cbo_action_type.Value, 2))
ActiveSheet.Cells(lRow, 4).Value = Format(CStr(Now), "yyyymmdd_hhmmss")
ActiveSheet.Hyperlinks.Add Anchor:=Cells(lRow, 2), Address:="H:\revised_action_tracker\test\" & Cells(lRow, 3) & Cells(lRow, 4)