2016-04-28 14 views
0

基本的に私はインデックスのようなものを作成したいと思います。作成したすべてのシートをMainという名前の拳ページにリンクして、マクロをいくつか記録してみましたが、私は私が何かをすることができると思ったJavaで少しの知識しか持っていないので、私はそれを動作させることができないので、VBでどのように動作するか分かりません。 編集:私の考えは、私がそのようなシートを作成するたびに、作成したページをインデックス(列)に自動的に追加することです。ではなく、のインデックスを作成してすべてのシートを終了します。 ページを作成するとすぐにハイパーリンクを試み、特定の行からセルに何かを入力するとすぐにワークシートを作成します。どのように私はそれを動作させることができる任意のアイデアですか?ここに私の二度目の試みがあります。自動的にExcelでワークシートを作成したい

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 

ありがとうございました。素敵な日です。あなたがもしいることに気づくでしょう

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 

:その後、追加のモジュールにこのコードを入れ

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 

:あなたはあなたのリンクが内に常駐したいシートのためのモジュールでこのコードを入れて

+0

Debra Dagleishにはハイパーリンクに関する情報がたくさんあります。あなたが望むことをするコードがいくつかあります:http://www.contextures.com/excelhyperlinkfunction.html#tocvba –

+0

ありがとう!私はすぐにそれをチェックします。 –

答えて

0

プロシージャの名前を変更するか、モジュールの名前が "Module1"でない場合は、コードをに変更する必要があります。

コードが追加され、必要に応じて変更されたら、選択したシートの列Aに値を入力できます。コードは、入力した値の名前に基づいて新しいワークシートを作成し、そのシートへのハイパーリンクを作成します。

+0

これはかなり興味深く見えますが、実際に私はそれを理解していますが、何らかの理由でそれを引き起こすことはできません。私はそれにショートカット方法を与える必要がありますか?まだありがとうございます。 –

+0

コードの唯一欠けている部分は、その前に= Trueだったと思われます。 –

+0

あなたのExcelには何か不思議なことがありますが、 '= True'は絶対に必要ありません。それは私のためにうまく走った、私は約15の異なるリンクでそれをテストした。しかし、それを動作させる方法を見つけたら、それはすべて重要です:) – Vegard

関連する問題