【问题标题】:Setting Button Location for Macro that Generates Form Control Buttons为生成表单控制按钮的宏设置按钮位置
【发布时间】:2012-05-09 06:39:33
【问题描述】:

我目前将数据拆分为多个工作表,并允许用户选择他们在哪个工作表上运行宏。工作表用作多个系统之间的过滤

我有一个命名范围(dayList),它将数据分组为天,并为每一天(day1、day2 等)创建一个新工作表。然后,每个工作表都必须应用另一个宏(屏幕数据),以完全相同的方式过滤每个工作表中的数据。

我正在尝试创建一个用户界面,该用户界面将近似于用户能够单击指定范围中的一个单元格来运行该特定日期的宏。当前使用的代码 sn-p im 如下。

 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. 将单元格引用从命名范围传递到宏

这里是一个优秀的菜鸟。任何帮助将不胜感激!

【问题讨论】:

    标签: vba excel excel-2007


    【解决方案1】:

    1) .Add 方法需要 4 个参数。前两个是 TOP 和 LEFT 位置,用于获取按钮的左上角,第三个和第四个是按钮的高度和宽度设置。

    因此,如果您知道要添加一个按钮,并且参考是将其放置在单元格 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
    

    【讨论】:

    • + 1 解释得很好 :) 我想你在"Day" & dayCounter之前有一个额外的“=”符号
    • 你的公式肯定让我朝着正确的方向前进,但是,按钮不会去他们应该去的地方。例如: ActiveSheet.Buttons.Add(Range("B1").Top, Range("A1").Left, 48.75, 13.5).Text = "B1" 会在屏幕左上角 (A1) 和:ActiveSheet.Buttons.Add(Range("C5").Top, Range("C5").Left, 48.75, 13.5).Text = "C5" 在第 7 行和第 8 行之间放置一个按钮,在 B 和 c 列之间的中心左侧。虽然传递参数有点像魅力。
    • 只是要清楚,[B1].Top 表示“屏幕顶部”,[A1].Left 表示“屏幕左侧”,所以它们一起会导致 TOP/LEFT屏幕,相当于A1。
    • 这是有道理的。使用您的代码作为基础,我现在调整了我原来的计划以使用用户表单,而不是尝试将控件直接添加到工作表。由于范围的变化,我开始了另一个问题。如果您有任何建议,将不胜感激。感谢你目前的帮助。 [链接]stackoverflow.com/questions/10592641/…
    猜你喜欢
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-31
    • 1970-01-01
    • 2021-11-13
    相关资源
    最近更新 更多