选择并编辑工作表中的所有按钮

时间:2018-03-29 11:35:39

标签: excel vba button

以下例程允许用户切换完成/未完成所需条目的位置。按钮文本更改为“完成/未完成”,并且相邻单元格使用0或1值上的简单条件格式设置变为绿色/红色。适用于更新单行。

每个用户的数据输入行数(例如10到100)会有所不同,我试图找到一种方法来选择然后将工作表中的所有按钮更改为“完成”并将相邻单元格更新为0如果用户想要这样做,那么还是一对一的。

每一行都是数据输入行,B列中的每个单元格都有一个按钮,C列中相邻单元格中的0/1。

Sub complete()
'Complete / Incomplete Buttton and Flag

Dim buttontext As String

buttontext = Application.Caller
ActiveSheet.Buttons(Application.Caller).TopLeftCell.Select
ActiveCell.Select

If ActiveSheet.Buttons(buttontext).Caption = "Mark as Incomplete" Then
    ActiveSheet.Buttons(buttontext).Caption = "Mark as Complete"
    ActiveCell.Offset(0, 1).Value = 1

    Else
    ActiveSheet.Buttons(buttontext).Caption = "Mark as Incomplete"
    ActiveCell.Offset(0, 1).Value = 0

End If

End Sub

以下代码有效:

Sub MarkAllComplete()
Dim btn As Button
For Each btn In ActiveSheet.Buttons
btn.Caption = "Mark as Complete"
Cells(btn.TopLeftCell.Row, btn.TopLeftCell.Column + 1) = 0
Next
End Sub

1 个答案:

答案 0 :(得分:0)

使用这个概念:

For Each btn In ActiveSheet.Buttons
    Debug.Print btn.Name, btn.TopLeftCell.Column, btn.TopLeftCell.Row
Next