2013-05-21 52 views
1

我在代碼中想要的是,當我單擊Sheet1中的這個單元格B3時,它將指示我到sheet2中的A5,反之亦然,當我單擊sheet2中的A5時,它將帶我回到B3工作表Sheet1 http://i.stack.imgur.com/qUngD.jpgvisual basic excel中的超鏈接

Sub Macro3() 
' 
' Macro3 Macro 
' 

' 
    Range("B3").Select 
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ 
    "Sheet2!A5", TextToDisplay:="gg" 
    Sheets("Sheet2").Select 
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _ 
    "Sheet1!B3", TextToDisplay:="gg" 
    Sheets("Sheet1").Select 
End Sub 

我現在的問題是,如果工作表的名稱是用戶定義是什麼?有一個消息框說你應該輸入表單的名稱。所以子地址現在改變它不再是「Sheet2」了。例如,您將msgbox「123」放入,表格的名稱現在變爲「Sheet2 123」。

+0

'當我點擊一個按鈕時,shee1t中的單元格B3變爲藍色或表示它有超鏈接 - 你能解釋一下嗎? – 2013-05-21 07:47:45

+0

您應該遍歷工作表集合。如果工作表總是編入索引1和2,則在後端通過索引而不是名稱 – 2013-05-21 07:53:15

+0

工作表的名稱取決於用戶定義的輸入。我可以用嗎 '&'?我試圖添加它「Sheet2&」,但錯誤 – kazSone

回答

1

您應該利用工作表集合的索引。

Sub IndexingSheets() 
    Sheets(1).Range("B3").Formula = _ 
    "=HYPERLINK(""#" & ThisWorkbook.Sheets(2).Name & "!A5"", ""TextToDisplay"")" 
    Sheets(2).Range("A5").Formula = _ 
    "=HYPERLINK(""#" & ThisWorkbook.Sheets(1).Name & "!B3"", ""TextToDisplay"")" 
End Sub 

此代碼假設您的sheet1和sheet2始終是工作簿中的前兩張。


但是如果你想問這個名字,那麼你可以用它代替:
代碼檢查表單是否已經存在(所以你可以參考它)。如果是,那麼它執行宏,如果它不是,那麼它會遞歸地調用該過程來詢問另一個名稱。

Dim sheetExist As Boolean 

Sub PrefNamedSheets() 

    Dim shName$, i& 
    shName = InputBox("Whats the second sheet name?") 
    For i = 1 To Worksheets.Count 
     If StrComp(CStr(Sheets(i).Name), shName, vbTextCompare) = 0 Then 
      sheetExist = True 
     End If 
    Next i 
    If sheetExist Then 
     ActiveSheet.Range("B3").Formula = _ 
     "=HYPERLINK(""#" & shName & "!A5"", ""TextToDisplay"")" 
     Sheets(shName).Range("A5").Formula = _ 
     "=HYPERLINK(""#" & ThisWorkbook.Sheets(1).Name & "!B3"", ""TextToDisplay"")" 
    Else 
     Call PrefNamedSheets 
    End If 
End Sub 

您還可能會發現this link有用!

+0

我試着你發佈的第一個代碼,但是當我點擊它時,它說參考是無效的。我也忘了說有隱藏的工作表。隱藏的工作表是否在表單的索引中計數? – kazSone

+0

哎呀我很抱歉錯誤的帖子。隱藏的工作表是否在表單的索引中計數? – kazSone

+0

@kazSone'此代碼假設您的sheet1和sheet2始終是工作簿中的前兩張.'如果您確定工作簿的結構,即。你知道哪兩張你需要你的參考,然後你使用第一個代碼。只要確保您的工作表索引參考了正確的工作表。否則,你應該使用第二種解決方案。 – 2013-05-21 09:27:29