gpt4 book ai didi

vba - 为生成表单控制按钮的宏设置按钮位置

转载 作者:行者123 更新时间:2023-12-04 20:19:38 24 4
gpt4 key购买 nike

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

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

我正在尝试创建一个 UI,该 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:我需要:
  • 使用 VBA 设置按钮的位置,最好将位置与单元格引用匹配,例如 Range("A1").Button.Insert
  • 将单元格引用从命名范围传递到宏

  • 一个优秀的菜鸟在这里过头了。任何帮助将不胜感激!

    最佳答案

    1) .Add 方法需要 4 个参数。前两个是获得按钮左上角的 TOP 和 LEFT 位置,第 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

    现在,您的其他宏可以调用 我的宏并且您必须传入参数,因为它被称为:
    Sub test2()
    Call MyMacro(Range("Animals"))
    End Sub

    关于vba - 为生成表单控制按钮的宏设置按钮位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10510941/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com