连接Userform数据并将单元格作为超链接传递给单元格

时间:2017-03-22 16:22:38

标签: excel-vba hyperlink userform vba excel

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

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

  • 第1部分:静态文件夹位置
  • 第2部分:用户表单中选择的选项中的前2个字符
  • 第3部分:当前日期和时间

我把所有这些都孤立地工作了:

  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")
  4. 当我尝试将第2部分和第3部分加入第1部分的工作超链接时,会抛出语法错误。

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

    H:\ revised_action_tracker \测试\ CT-20170322_162111

    我觉得我已经绕过这个圈子,任何帮助都会感激不尽。

1 个答案:

答案 0 :(得分:0)

如果您在步骤1之前处理第2部分和第3部分,这可以解决。这样您就可以在超链接公式中添加这两部分的文本:

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 & """)"

作为替代方案,如果您想在不更改文本的情况下设置链接,可以创建一个包含简单字符串的单元格并将超链接与其关联,而不是使用公式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)