【问题标题】:Hyperlink to new workbook not working指向新工作簿的超链接不起作用
【发布时间】:2017-08-03 15:48:32
【问题描述】:

我是 Excel 新手,所以我希望这是有道理的。下面的代码显示了当单击用户表单上的按钮时,在特定工作簿(与当前工作簿不同)上创建的新工作表。不过,我在单独工作簿上创建的工作表的超链接似乎已损坏。我究竟做错了什么?有什么帮助,谢谢!

Dim LastRow As Long, ws As Worksheet
Set ws = Sheets("Employee Information")
LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row + 1

If Me.cbStores.Value = "Northern" Then
Dim newWB As Workbook
Dim thisWB As Workbook
Set thisWB = ThisWorkbook
Set newWB = GetOrCreateWB("EmployeeTemplates", "C:\Users\...\Folder") '<--| Opening EmployeeTemplates wb
thisWB.Sheets("Template").Copy after:=newWB.Sheets(1)
With ActiveSheet '<--| the just pasted worksheet becomes the active one
.Name = AddEmployeeUF.txtFirstname.Text + AddEmployeeUF.txtMiddleinitial.Text + AddEmployeeUF.txtLastname.Text + "Template" '<--| Name it
ws.Hyperlinks.Add Anchor:=ws.Range("F" & LastRow), Address:="", SubAddress:=.Name & "!A1", TextToDisplay:="View" '<--| hyperlink to new sheet
End With
End If

【问题讨论】:

    标签: vba excel hyperlink excel-2010


    【解决方案1】:

    您需要在地址Address:=newWB.Path &amp; "\" &amp; newWB.Name 中指定工作簿路径和名称。为确保在工作表名称中使用空格时不会失败,请将其用于子地址 SubAddress:="'" &amp; .Name &amp; "'!A1"

    这应该是正确的方法。

    ws.Hyperlinks.Add Anchor:=ws.Range("F" & LastRow), Address:=newWB.Path & "\" & newWB.Name, SubAddress:="'" & .Name & "'!A1", TextToDisplay:="View" '<--| hyperlink to new sheet
    

    【讨论】:

    • @ColeGwozdecki .Name 的值是多少?例如。 debug.print .Name
    • .Name = AddEmployeeUF.txtFirstname.Text + AddEmployeeUF.txtMiddleinitial.Text + AddEmployeeUF.txtLastname.Text + "模板"
    • 不,那是公式。但它的价值是什么?发生错误时工作表的名称是什么?
    • 那是工作表的名称。在这些框中键入的任何内容都会重命名工作表。如果名字是 Cole,中间名首字母是 U,姓氏是 Gwoz,则工作表名为 ColeUGwozTemplate
    • 好的,您在这些框中输入了什么以产生错误?这是相关的,因为如果我使用 .Name = "AAA" 运行它,它就可以工作!
    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多