VBA无法获取您刚才单击的按钮的属性
现在我在工作表中有几个按钮,每个按钮都设置了标题。我想实现这样一个功能:当我单击按钮时,会执行一个宏来过滤带有标题的特定行,因此我需要获取我刚才在宏内部单击的按钮的属性,即标题 我的伪代码如下:VBA无法获取您刚才单击的按钮的属性,vba,excel,Vba,Excel,现在我在工作表中有几个按钮,每个按钮都设置了标题。我想实现这样一个功能:当我单击按钮时,会执行一个宏来过滤带有标题的特定行,因此我需要获取我刚才在宏内部单击的按钮的属性,即标题 我的伪代码如下: Sub filterPM() Dim capBt as String 'get button caption as capBt ActiveSheet.Range(...).Autofilter(...,criterial=capBt,...) End Sub 我碰巧发现一个解
Sub filterPM()
Dim capBt as String
'get button caption as capBt
ActiveSheet.Range(...).Autofilter(...,criterial=capBt,...)
End Sub
我碰巧发现一个解决方案是使用应用程序。调用者
,但我无法从中获得正确的标题,该对象返回默认标题,类似于按钮134
,但不是我创建按钮时设置的标题
那么我该怎么做呢?您可以使用替代文本。首先尝试使用应用程序返回的形状名称获取形状
对象。调用者
。之后,您可以轻松访问该形状的alt文本:
Sub ButtonClick()
Dim btn As Shape
Dim altText As String
Set btn = ThisWorkbook.Worksheets("Sheet1").Shapes(Application.Caller)
altText = btn.AlternativeText
ActiveSheet.Range(...).Autofilter(...,criterial=altText,...)
End Sub
试试这个:
capBt = Worksheets("Sheet1").Buttons("Button 1").Text
形状没有标题属性。您需要使用具有
.Caption
属性的ActiveSheet.Buttons
对象访问它
capBt = Sheet1.Buttons(Application.caller).Caption
但请确保此宏仅分配给按钮,而不分配给其他类型的形状。除非OP特别要求,否则理想情况下,我们不会提供使用
Select