我正在寻找Excel VBA来动态更改Excel命令按钮上的标题。默认标题应为“显示差异”,并应在应用过滤器时更改为“全部显示”。
这是我到目前为止所做的。
Sub ShowDifference()
Dim cmdButton As CommandButton
'打破这里
Set cmdButton = ActiveSheet.Shapes("cmdShowDif")
If cmdButton.Caption = "Show Difference" Then
ActiveSheet.ListObjects("qryDifference").Range.AutoFilter Field:=4, _
Criteria1:=Array("<>0.00"), Operator:=xlAnd
cmdButton.Caption = "Show All"
Else
ActiveSheet.ListObjects("qryDifference").Range.AutoFilter Field:=4
cmdButton.Caption = "Show Difference"
End If
End Sub
它打破了sub的名字。为什么呢?
答案 0 :(得分:1)
以下是工作代码:
Sub ShowDifference()
Dim cmdButton As Button
Set cmdButton = ActiveSheet.Buttons("cmdShowDif")
If cmdButton.Caption = "Show Difference" Then
cmdButton.Caption = "Show All"
Else
cmdButton.Caption = "Show Difference"
End If
End Sub
或者,您也可以使用以下代码:
Sub ShowDifference()
Dim cmdButton As Button
For Each cmdButton In ActiveSheet.Buttons
If cmdButton.Name = "cmdShowDif" Then
If cmdButton.Caption = "Show Difference" Then
cmdButton.Caption = "Show All"
Else
cmdButton.Caption = "Show Difference"
End If
Else
Debug.Print cmdButton.Name & " is not the one... moving to next button..."
End If
Next cmdButton
End Sub
如果您有任何问题,请与我们联系。
答案 1 :(得分:0)
转到“开发人员”选项卡,然后单击“设计模式”。现在选择你的CommandButton。按钮的名称将显示在名称框中 - 公式栏的左侧。改变这一行
Set cmdButton = ActiveSheet.Shapes("cmdShowDif")
到
Set cmdButton = ActiveSheet.OLEObjects("cmdShowDif").Object
但是,它使用正确的名称而不是cmdShowDif
(或将名称框中的名称更改为cmdShowDif