设置生成表单控件button的macros的button位置

我目前有数据,我拆分成多个工作表,并允许用户select哪个表他们运行macros。 工作表被用作多个系统之间的过滤

我有一个命名范围(dayList)将数据分组为天,并为每一天(第1天,第2天等)创build一个新的工作表。 每张表必须有另一个macros应用(屏幕数据),将以完全相同的方式过滤每个表中的数据。

我正在尝试创build一个用户界面,该用户界面能够点击命名范围中的某个单元格来运行特定date的macros。 我目前正在使用的代码片段如下。

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" 

Im循环这个为每一天创build一个新的button,然后将button名称传递给另一个macros作为参数来查找共享相同的名称在此工作簿中的工作表。

TLDR:我需要:

  1. 使用VBA设置button的位置,最好将位置与单元格引用相匹配,例如Range("A1").Button.Insert
  2. 将指定范围的单元格引用传递给macros

在这里,他的头上有一个优秀的noob。 任何帮助将不胜感激!

1).Add方法需要4个参数。 前两个是TOP和LEFT位置来获得button的左上angular,第三和第四个是button的高度和宽度设置。

所以,如果你知道你想添加一个button,并且引用是将它放在单元格C10(一个比A1更好的例子),那么这将做到这一点:

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

2)您的macros必须首先被devise为接受一个被“传递”的参数。 所以,像

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

现在,您的其他macros可以调用MyMacro,并且必须传入参数:

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