2
我有一個工作表,其中有一個輸入框(用於公司名稱),它在新表中創建一個新選項卡和一個新條目,並具有指向新工作表的超鏈接。只有在名稱中沒有空格的情況下(即名稱是「公司」),超鏈接才起作用。超鏈接工作正常,但如果名稱是「新公司」,超鏈接不起作用。我可以在事實之後手動編輯鏈接以使其重新工作,但我希望能夠在此找到解決方案。代碼舉例如下。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
總之,當公司的名稱沒有一個空間在裏面,但我想找到一種方法,更改代碼,使之與公司名稱的工作空間的超級鏈接的作品。任何幫助將非常感激。
謝謝你,那確實起作用。你介意填補我爲什麼和它的工作原理嗎? – Jon0311
@ Jon0311鏈接的名稱需要包含在單引號內才能正確聲明 – RGA
如果Excel中的公式包含對另一個工作表上的單元格的引用,並且該工作表的名稱中包含(例如)空格,Excel會自動在公式引用中的工作表名稱周圍添加單引號:='Sheet 1'!A1。由於您不知道新工作表是否會在其名稱中包含空格,因此始終添加單引號是個不錯的主意。 – jkpieterse