2017-09-09 191 views
-1

大家好我嘗試創建一個宏做到以下幾點:Excel宏創建超鏈接 - 不工作

創建的工作表,創建一個超鏈接到每一個創建的工作表的主列表。

我曾嘗試這個過程,宏自動化如下:

Sheets("MasterSheet").Copy Before:=Sheets(1) 
Sheets("MasterSheet (2)").Name = Sheets("setup project").Range("c4").Text 
Range("C2").FormulaR1C1 = Sheets("setup project").Range("c4").Text 
Range("C3").FormulaR1C1 = Sheets("setup project").Range("d4").Text 
Dim sheetname As Worksheet 
sheetname = Sheets(ActiveSheet.Name) 
Dim targetsheet As Range 
targetsheet = ActiveSheet.Range("c4") 
Sheets("project overview").Hyperlinks.add Anchor:=Sheets("project overview").Range("B6"), Address:="", SubAddress:= _ 
    "'" & sheetname & "'!" & targetsheet.Address, TextToDisplay:=Sheets("setup project").Range("c4").Text 

Unfortunatley我這不是工作,我無法一個)獲得的超鏈接工作或參照表我有剛創建。 B)我無法使用爲超鏈接名稱創建的工作表名稱。任何幫助將非常感激!

親切的問候

大號

回答

1

使用Objects指你Worksheets並指定WS.Range, .Cells etc,分配必須與Set的對象。像:

Sub Test() 
Dim nWs as Worksheet, sPro as Worksheet, oPro as Worksheet 
Set sPro = Worksheets("setup project") 
Set oPro = Worksheets("project overview") 
Sheets("MasterSheet").Copy Before:=Sheets(1) 
Set nWs = Worksheets(1) 
With nWs 
    .Name =sPro.Range("C4").Value 
    .Range("C2").Value = .Name 
    .Range("C3").Value = sPro.Range("D4").Value 
End With 
oPro.Hyperlinks.add Anchor:= oPro.Range("B6"), Address:="", SubAddress:= _ 
    "'" & nWs.Name & "'!C4", TextToDisplay:= nWs.Name 
End Sub 

你應該考慮提問之前搜索。有一個Excel VBA的Microsoft文檔可以幫助你解決語法問題。

+0

謝謝UGP抽出時間提供上述迴應。我在這裏嘗試了一些想法,但還沒有找到一個適合我的方法。上面的代碼也失敗了,不幸的是,我得到了'Method'Name'object'_Factory'failed'錯誤' – 85l00k85

+0

This Code works。您應該仔細檢查代碼中「工作表」名稱的拼寫,我使用了所提供的拼寫,但是在工作簿中必須有一處區別。 – UGP

+0

UGP沒有區別,我已經檢查 – 85l00k85

1

請試試這個代碼:

Dim sheetname As Worksheet 
    Dim targetsheet As Range 

    Sheets("MasterSheet").Copy Before:=Sheets(1) 
    Sheets("MasterSheet (2)").Name = Sheets("setup project").Range("c4").Text 
    Range("C2").FormulaR1C1 = Sheets("setup project").Range("c4").Text 
    Range("C3").FormulaR1C1 = Sheets("setup project").Range("d4").Text 


    Set sheetname = Sheets(ActiveSheet.Name) 

    Set targetsheet = ActiveSheet.Range("c4")   
    Sheets("project overview").Hyperlinks.Add Anchor:=Sheets("project overview").Range("B6"), Address:="", SubAddress:= _ 
     "'" & sheetname.Name & "'!" & targetsheet.Address, TextToDisplay:=Sheets("setup project").Range("c4").Text 

希望這有助於。

+0

對不起Adhy我不能讓這段代碼工作,要麼 – 85l00k85

+0

請嘗試關閉您的工作簿,然後重新打開它 –

+0

其實我已經進行了測試。 –