2016-06-16 15 views
2

私は、新しいタブを作成する入力ボックス(会社名用)と新しいシートへのハイパーリンク付きのテーブル内に新しいエントリを持つワークシートを持っています。ハイパーリンクは機能しますが、名前にスペースがない場合(つまり、名前が「会社」の場合)のみ動作します。ハイパーリンクはうまくいきますが、名前が "New Company"の場合、ハイパーリンクは機能しません。事実の後にリンクを手動で編集して再び機能させることができますが、ここでは問題の解決策を見つけることを望んでいます。コードの例は以下の通りです。会社名にスペースはありませんが、私はそれが会社名にスペースで動作するようにコードを変更する方法を見つけるたいときVBA - 新しいシートへのハイパーリンク。名前付けの問題

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

変更この行:

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

strLink = strName & "!A1" 

トリックをしたこと、ありがとうございます。あなたはなぜ、どのように働いているのか、私に記入してもらえますか? – Jon0311

+1

@ Jon0311リンクの名前を適切な宣言のために一重引用符で囲む必要があります – RGA

+2

Excelの式に別のワークシートのセルへの参照が含まれていて、そのワークシートの名前にスペース(たとえば)数式参照内のワークシート名の前後に一重引用符を追加します。= 'Sheet 1'!A1。新しいシートに名前にスペースが含まれるかどうか分からないので、常に単一引用符を追加することをお勧めします。 – jkpieterse

関連する問題