好的,所以我正在使用Excel并尝试根据我点击的命令按钮的位置获取单元格地址。我想将该单元格地址存储在变量中,因为我单击该按钮将在单击该按钮时弹出的用户表单的下一个代码中使用。我看过这个链接:Store location of cell address to variable in VBA,这与我正在尝试做的类似,但我似乎无法使用ActiveSheet.Shapes(Application.Caller).TopLeftCell.Address
来处理基于左上角的地址命令按钮。我正在尝试这样做,所以我可以使用下一部分中的相同代码来添加我添加的每个类似按钮,而无需根据按钮的位置手动更改代码。
对于Excel和VBA来说,我是新手,所以任何帮助都会受到赞赏。
我尝试添加代码但是我收到运行时错误'1004'无法获取Worksheet类的Buttons属性。我有这个
Sub Button2_Click()
Dim BtRng As Range
Set Btnrng = ActiveSheet.Buttons(Application.Caller).TopLeftCell
MsgBox Btnrng.Address
Btnrng.Offset(3, 3) = "Hello"
formAddBill.Show
End Sub
此按钮还会弹出用户表单以输入信息。错误发生在Set Btnrng = ActiveSheet.Buttons(Application.Caller).TopLeftCell
答案 0 :(得分:0)
如果您使用的是application.caller,那么我假设您的按钮来自forms.control工具箱。这使生活变得更加容易。
Sub Rng_Butn_Clicked()
Dim BtRng As Range
Set Btnrng = ActiveSheet.Buttons(Application.Caller).TopLeftCell
MsgBox Btnrng.Address
Btnrng.Offset(3, 3) = "Hello"
End Sub
如果您使用的是activex工具栏中的命令按钮,则会让人感到有些困惑。一次做一个很容易
Private Sub CommandButton1_Click()
Me.CommandButton1.TopLeftCell.Offset(0, 1) = "Hi"
Me.CommandButton1.TopLeftCell.Offset(, 2).Interior.Color = vbBlue
MsgBox Me.CommandButton1.TopLeftCell.Address
End Sub
但是将一个代码分配给许多activex命令按钮并不容易,如果你想将一个代码分配给多个按钮,我宁愿使用表单按钮。
您可能将代码放在命令按钮中。请重新阅读我的答案。