VBA代码获取单击按钮的行号

Posted

技术标签:

【中文标题】VBA代码获取单击按钮的行号【英文标题】:VBA Code to get row number of a clicked button 【发布时间】:2021-07-17 01:24:42 【问题描述】:

我正在尝试自动确定单击的命令按钮所在的行。

我正在使用以下代码:

Private Sub CommandButton2_Click () 
   
    Dim b As Object, r As Integer 
    Set b = ActiveSheet.Buttons(Application.Caller) 
    With b.TopLeftCell 
        r= .row
    End With 
    MsgBox "Row Number " & r
End Sub 

但是当我运行代码“运行时错误 1004 - 无法获取工作表类的按钮属性”时,我不断收到一条错误消息

你能建议吗?

【问题讨论】:

Buttons 用于表单控件。您可能有一个 ActiveX 控件。 【参考方案1】:

正如@BigBen 所说,您可能有一个 ActiveX 按钮,因此您可以使用:

Private Sub CommandButton2_Click () 
   MsgBox Me.CommandButton2.TopLeftCell.Row
End Sub 

【讨论】:

你说得对,我正在使用活动 x 按钮。有没有办法让所有命令按钮的代码动态化? 如果您有很多 ActiveX 按钮并且不想为每个按钮编写处理程序,那么您可以使用这种方法:siddharthrout.com/index.php/2018/01/15/vba-control-arrays 您可能会发现使用表单按钮更容易而是(或只是形状)和一个使用 Application.Caller 方法的单个“OnAction”子。

以上是关于VBA代码获取单击按钮的行号的主要内容,如果未能解决你的问题,请参考以下文章

VBA如何得到选中的多行 的行号和列号

excle vba,如何查找一个已知值的行号和列号?

单击 HTML 表格并获取行号(使用 Javascript,而不是 jQuery)

如何在 Qt 的 QTableview 中找到我的按钮的行号

EXCEL VBA 如何找到某一数据的行号和列号?

关于vba代码错误"91"?