大家好我试图创建一个宏来执行以下操作:
创建工作表创建使用超链接创建的工作表的主列表。
我尝试使用宏自动完成此过程,如下所示:
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我这不起作用,我无法a)获取工作的超链接或引用我刚刚创建的工作表。 B)我无法使用为超链接名称创建的工作表的名称。任何帮助将不胜感激!
亲切的问候
→
答案 0 :(得分: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文档可以帮助您解决语法问题。
答案 1 :(得分: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
希望得到这个帮助。