连接用户表单数据并作为超链接传递给单元格
Concatenating Userform Data And Passing To Cell As Hyperlink
我正在尝试将组合数据从用户表单传递到单元格以创建超链接。
我希望最终得到如下超链接结构:
- 第 1 部分:静态文件夹位置
- 第 2 部分:在用户表单中选择的选项的前 2 个字符
- 第 3 部分:当前日期和时间
我让所有这些独立工作:
.Cells(lRow, 2).Value = "=Hyperlink(""H:\revised_action_tracker\test\"")"
.Cells(lRow, 3).Value = UCase(Left(Me.cbo_action_type.Value, 2))
.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)
我正在尝试将组合数据从用户表单传递到单元格以创建超链接。
我希望最终得到如下超链接结构:
- 第 1 部分:静态文件夹位置
- 第 2 部分:在用户表单中选择的选项的前 2 个字符
- 第 3 部分:当前日期和时间
我让所有这些独立工作:
.Cells(lRow, 2).Value = "=Hyperlink(""H:\revised_action_tracker\test\"")"
.Cells(lRow, 3).Value = UCase(Left(Me.cbo_action_type.Value, 2))
.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)