VBA - 指向新工作表的超链接;命名问题

时间:2016-06-16 14:42:07

标签: excel vba excel-vba hyperlink

我有一个带有输入框(公司名称)的工作表,它在表格中创建一个新选项卡和一个新条目,并带有指向新工作表的超链接。超链接有效,但前提是名称中没有空格(即名称为“公司”)。超链接工作正常,但如果名称是“新公司”,则超链接不起作用。我可以在事后手动编辑链接以使其再次工作,但我希望在这里找到问题的解决方案。代码示例如下所示。

Sub NewCompany()

Dim strName As String

Dim strLink As String

'get the name

    'InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
    strName = InputBox("Enter Company Name.", "NAME COLLECTOR")
    'Exit sub if Cancel button used or no text entered
    If strName = vbNullString Then Exit Sub

    MsgBox "Creating Tab " & strName

'create new row

    Rows("4:4").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

'put Company name in column A

    Cells(4, 1).Value = strName

' create new tab, input name in new tab cell, rename new tab

    Sheets("Blank").Select
    Application.Run "BLPLinkReset"
    Sheets("Blank").Select
    Application.CutCopyMode = False
    Sheets("Blank").Copy After:=Sheets(5)
    Application.Run "BLPLinkReset"
    Sheets("Blank (2)").Select
    Application.Run "BLPLinkReset"
    Cells(3, 3).Value = strName
    Sheets("Blank (2)").Name = strName
    Sheets("Home").Select
    Application.Run "BLPLinkReset"
    Range("B4").Select
    Application.CutCopyMode = False

'create hyperlink to new tab

    strLink = strName & "!A1"
    Range("B4").Select
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        strLink, TextToDisplay:=strName
    Range("A4").Select

End Sub

总之,超链接在公司名称中没有空格时起作用,但我想找到一种方法来更改代码,使其与公司名称中的空格一起使用。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

更改此行:

strLink = strName & "!A1"

strLink = "'" & strName & "'!A1"