2016-04-13 5 views
0

私は、「クリア」、「生成」、「計算」、「パブリッシュPDF」の4つのステップをボタンの代わりにリンクで起動したExcelフォームを使用しています。VBAリンクの生成と変更

私はこれらのリンクを介してコール:ように

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 
If Target.Range.Address = "$L$13" Then 
'Function 

と。 「$ L $ 13」は、最初のリンクが配置されているセルのアドレスです。すべてのリンクは、それ自身のセルアドレスを必要とします。今のコードは、4つの敷地(1ステップにつき1つ)の 'if ... else if'ループです。

「クリア」機能はクリアです(このジョークは私のものでした)。

「Generate」機能は、ユーザーがグループを指定した回数だけセルの範囲(「フォーム」)をコピーして貼り付けます。それらは同じ量の行に分かれています。

「計算」機能は、ユーザーの入力に応じて手計算を実行します。

「パブリッシュPDF」はスプレッドシートを使ってPDFで印刷します。

まあ、グループごとに結果を計算するためにユーザーにプッシュするために、 'Calculate'ボタン(および 'PDFを公開するが、今は関係ないが、今は関係ない)を要求されている。

リンクであるため、リンクをコピーしてフォームの残りの部分に貼り付けることができますが、シートの冒頭にある元の[計算]ボタンにユーザーを送信するだけです。コピーされたリンクは、元のリンク(サブアドレス= L13)のサブアドレスを保持します。

各ステップを呼び出すためにリンクを使用しても、同じ機能に多くの '計算'リンクがある可能性はありますか?

ありがとうございます。

私はコードの主な構造のまま:

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 

'Comparing this with $L$13:$L$16 

If Target.Range.Address = "$L$13" Then 

'Clear button function     

Exit Sub 

ElseIf Target.Range.Address = "$L$14" Then 

'Generate button function 

    'Copying_the_template (k) 

     'This is an fail attempt to modify the link once it is pasted. 

     'Cells(Group_index + 5, 10).Select 
     'Selection.Hyperlinks(1).Address = Sheet3.Cells _ 
     (Group_index + 5,10).Address 
     'ActiveSheet.Hyperlinks.Add , SubAddress:=Sheet3. _ 
     Cells(Group_index + 5, 10) 

ElseIf Target.Range.Address = "$L$15" Then 

'Calculate button function 

    Exit Sub 

ElseIf Target.Range.Address = "$L$16" Then 

'Publish PDF button function 

End If 
End Sub 

答えて

0

あなたが代わりにこのような何かを行うことができませんでした - セルの値に基づいて?

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink) 

    If Target.Range.Column = 12 Then 'is column L 
     With Target.Range 
      Select Case .Value 
       Case "Clear" 
        'Clear button function 
       Case "Generate" 
        'Generate button function 
       Case "Calculate" 
        'Calculate button function 
       Case "Publish" 
        'Publish PDF button function 
      End Select 
      Exit Sub 
     End With 
    End If 

End Sub 
+0

いつもの「if then」の指示よりも速く/良いか教えてください。もしそうなら、私はより頻繁にそれを使い始めるつもりです。 –

+0

私が想像しているような小さなものがあれば、より速く、違いは分かりませんが、読んだりデバッグする方が簡単です。 – Will