在 VBA 中精确定位新选项按钮

在 VBA 中精确定位新选项按钮

有没有办法在 VBA 或宏中精确定位和调整新选项按钮的大小?

我正在使用的代码在工作表中当前选定的每个单元格中插入一个新的选项按钮。

如果您再次运行代码,它会在第一个按钮的正上方插入第二个按钮。

它还将选项按钮的大小设置为所选单元格的大小。

我需要做的是在代码中声明我想要插入新选项按钮的单元格 F15,并设置按钮的精确大小以及左/右和上/下位置。

这样,选项按钮每次都会插入到同一个单元格、同一个位置、同一个大小。

这能做到吗?

创建/插入新选项按钮的代码是:

Sub AddOptionButton()
    With ActiveSheet.OptionButtons.Add(Selection.Left, Selection.Top, 
Selection.Width, Selection.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Sub

答案1

一般来说,你应该避免在代码中使用选择

您可以将范围分配给变量并将按钮放入其中:

Sub AddOptionButton()
    Dim myRange as Range

    Set myRange = Range("C3")
    With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Sub

但将范围传递给函数可能会更好:

Function AddOptionButton(myRange as Range)
    With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Function

您可以从任何地方调用它Sub

Call AddOptionButton(Range("F15"))

相关内容