2012-05-09 7 views
2

現在、複数のシートに分割し、マクロを実行するシートをユーザーが選択できるようにするデータがあります。作業シートは複数のシステム間のフィルタリングとして使用されますフォームコントロールボタンを生成するマクロのボタン位置の設定

データを日にグループ化し、毎日(day1、day2など)の新しいシートを作成する名前付き範囲(dayList)があります。各シートには、まったく同じ方法でこれらのシートのそれぞれのデータをフィルタリングする別のマクロ(画面データ)が適用されている必要があります。

ユーザーは、指定された範囲のセルの1つをクリックしてその特定の日のマクロを実行できるようになるUIを作成しようとしています。現在作業中のコードスニペットは次のとおりです。

日ごとに新しいボタンを作成するには、このループを
Sheets("LaunchScreen").Activate 
    Cells(rowCounter, 6).Value = "Day" & dayCounter 
    ActiveSheet.Buttons.Add(538.5, 56.25, 48.75, 13.5).Name = "Day" & dayCounter 
    ActiveSheet.Buttons("Day" & dayCounter).Select 
    Selection.OnAction = "JoinTransactionAndFMMS" 

イムその後、同じ名前を共有し、このワークブックでワークシートを見つけるためのパラメータとして別のマクロにボタン名を渡します。

TLDR:私を行う必要があります。

  1. 設定好ましくは例えばセル参照に位置を一致、VBAを使用して、ボタンの位置Range("A1").Button.Insert
  2. は、ここでは彼の頭の上の方法でマクロ

アンエクセルのnoobに名前付き範囲からセル参照を渡します。どんな助けでも大歓迎です!

答えて

1

1).Addメソッドには4つのパラメータが必要です。最初の2つは、ボタンの上端を取得するための上および下の位置です。第3および第4は、ボタンの高さおよび幅の設定です。あなたはボタンを追加したい知っていると参照がセルC10(A1よりも良い例)でそれを配置することである場合

ので、これはそれを行うだろう:

ActiveSheet.Buttons.Add(Range("C10").Top, Range("C10").Left, 48.75, 13.5).Name = "Day" & dayCounter  

2 )あなたのマクロは、最初にそれに "渡された"パラメータを受け入れるように設計されなければなりません。だから、

Sub MyMacro(MyRange As Range) 
    MsgBox MyRange.Address 
End Sub 

のようなものは今、あなたの他のマクロがMYMACROを呼び出すことができますし、それが呼び出されるよう、あなたは、パラメータを渡す必要があります:

Sub test2() 
    Call MyMacro(Range("Animals")) 
End Sub 
+0

+ 1は、素敵な、私はあなたが持っていると思います:)説明しました余分な "="前に "日"&dayCounter' –

+0

フィードバック、フィードバックありがとうございました。 –

+0

優れたフィードバックをありがとう!それが今働いているかどうかテストしてください.... – BiGXERO

関連する問題