想要自动在Excel中创建工作表

时间:2016-04-28 18:03:39

标签: excel vba excel-vba

基本上我想创建类似索引的东西,我想将我创建的每个工作表链接到我命名为Main的第一页,尝试记录一些宏然后使用它们但我意识到我不知道如何工作与vb,因为我无法使它工作,因为我只有一点java知识,我以为我可以做点什么。 编辑:我的想法是每当我创建这样的工作表时自动将我创建的页面添加到索引(列),在“完成所有工作表之后”创建索引。 我创建它时尝试hiperlink页面,并在从特定行输入单元格后立即“创建”工作表。任何想法我怎么能让它工作?这是我的两次尝试。

Sub Sheetcreation ()
    If (Sheets.Add(After)) = True Then [ Main.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
    "Hoja1!A1", TextToDisplay:=(SheetName) ] [ Else [  ] ]
End Sub

Sub Sheetcreate ()
  Principal.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
    "Hoja1!A1", TextToDisplay:=(SheetName)
End Sub

先谢谢你们,祝你们度过愉快的一天。

1 个答案:

答案 0 :(得分:0)

将此代码放入您希望链接所在的工作表的模块中:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 And Target.Value <> "" Then Call Module1.SheetCreation(Target.Value, Target.Item(1))
End Sub

然后将此代码放入添加的模块中:

Sub SheetCreation(n As String, r As Range)
    ' Create the sheet
    Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = n
    r.Parent.Activate

    ' Add hyperlink
    r.Parent.Hyperlinks.Add _
        Anchor:=r, _
        Address:="", _
        SubAddress:="'" & n & "'!A1", _
        TextToDisplay:=n
End Sub

您会注意到,如果您更改过程的名称,或者您的模块未命名为“Module1”,则必须相应地更改Worksheet_Change中的代码。

添加代码并根据需要进行更改后,您可以在所选工作表的A列中键入值。然后代码将创建一个以您输入的值命名的新工作表,然后创建指向该工作表的超链接。