VBA无法获得您刚刚点击的button的属性
现在我在工作表中有几个button,每个都设置了他们的标题。 我想要实现一个像这样的function:当我点击button时,执行一个macros来过滤一个具有自己的标题的特定行,所以我需要获得我刚刚点击的button的属性,即标题。macros观的内部。
我的伪代码是这样的:
Sub filterPM() Dim capBt as String 'get button caption as capBt ActiveSheet.Range(...).Autofilter(...,criterial=capBt,...) End Sub
我碰巧find一个解决scheme是使用Application.Caller
,但我不能从它得到适当的标题,该对象返回默认标题,就像button134
但不是我创buildbutton时设置的标题。
那我该怎么做呢?
您可以使用替代文字 。 尝试使用由Application.Caller
返回的形状的名称首先获取Shape
对象。 之后,您可以轻松访问该形状的替代文字:
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
形状没有标题属性。 您需要使用具有.Caption
属性的ActiveSheet.Buttons
对象来访问它。
capBt = Sheet1.Buttons(Application.caller).Caption
但是确保这个macros只被分配给button,而不是其他types的。
尝试这个:
capBt = Worksheets("Sheet1").Buttons("Button 1").Text