2016-04-28 10 views
0

Grundsätzlich möchte ich etwas wie ein Index erstellen, ich möchte jedes Blatt, das ich auf der ersten Seite, die ich Main nannte, verknüpfen, versuchte einige Makros aufzunehmen und dann mit ihnen arbeiten, aber ich realisiere Ich habe keine Ahnung, wie ich mit vb arbeiten soll, da ich es nicht schaffen kann, da ich nur ein wenig Ahnung von Java habe. Ich dachte, ich könnte etwas tun. edit: Meine Idee ist es, automatisch die Seiten, die ich zum Index (eine Spalte) zu erstellen, wenn ich ein solches Blatt erstellen, nicht erstellen den Index "nach" Finishing alle Blätter. Versucht, die Seite zu hiperlink, sobald ich es erstellt habe und ein Arbeitsblatt "erstellen", sobald ich etwas in eine Zelle aus einer bestimmten Zeile getippt habe. Irgendwelche Ideen wie könnte ich es zum Laufen bringen? Hier sind meine zwei derpy Versuche.Willst du Arbeitsblätter in Excel automatisch erstellen

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 

Vielen Dank im Voraus Jungs, einen schönen Tag.

+0

Debra Dagleish hat viele Informationen über Hyperlinks. Hier ist ein Code, der das tut, was Sie wollen: http://www.contextures.com/excelhyperlinkfunction.html#tocvba –

+0

Danke! Ich werde es sofort überprüfen. –

Antwort

0

diesen Code in das Modul Setzen Sie für das Blatt, das Sie Ihre Links möchte wohnen:

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 

Dann diesen Code in einem zusätzlichen Modul setzen:

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 

Sie werden bemerken, dass, wenn Sie ändern den Namen der Prozedur, oder wenn Ihr Modul nicht "Module1" heißt, müssen Sie den Code in Worksheet_Change entsprechend ändern.

Sobald der Code hinzugefügt und bei Bedarf geändert wurde, können Sie Werte in Spalte A des ausgewählten Blattes eingeben. Der Code erstellt dann ein neues Arbeitsblatt, das nach dem eingegebenen Wert benannt ist, und erstellt dann einen Hyperlink zu diesem Arbeitsblatt.

+0

Dieser sieht ziemlich interessant aus und tatsächlich verstehe ich es, aber aus irgendeinem Grund kann es nicht auslösen. soll ich eine Abkürzung geben? Immer noch danke. –

+0

Scheint das einzige fehlende Teil im Code war das = Wahr vor dem dann, es wirkt Wunder! –

+0

Es muss etwas funky mit Ihrem Excel sein, das '= True' wird absolut nicht benötigt. Es lief für mich gut, ich habe es mit ca. 15 verschiedenen Links getestet. Aber wenn du einen Weg gefunden hast, es zum Laufen zu bringen, dann ist das alles wichtig :) – Vegard

Verwandte Themen