根据单元格值激活和停用命令按钮
Activating and deactivating a command button based on a cell value
我比较新,但学得很快。我有一个单元格 (Sheet8.Range("E15")),它根据其他条件生成 TRUE 或 FALSE(布尔值)。我的目标是当此单元格 = TRUE 时,按钮处于活动状态。如果单元格值更改为 FALSE,我希望按钮处于非活动状态。感谢您的帮助!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Sheet8.Range("E15")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Sheet8.Range("E15").Value = True Then CommandButton1.Enabled = True
If Sheet8.Range("E15").Value = False Then CommandButton1.Enabled = False
End If
End Sub
这里的问题似乎是单元格值实际上并没有发生变化,这并没有触发宏。
如果您将宏从 Worksheet_Change 更改为 Selection_Change,此宏将在每次用户操作后触发。这应该可以解决您的问题。
使用 KeyCells.Value 而不是 sheet 并将按钮名称更改为更具描述性的名称。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Sheet8.Range("E15")
If KeyCells.Value = TRUE Then
CommandButton1.Enabled = True
Else
CommandButton1.Enabled = False
End If
End Sub
我比较新,但学得很快。我有一个单元格 (Sheet8.Range("E15")),它根据其他条件生成 TRUE 或 FALSE(布尔值)。我的目标是当此单元格 = TRUE 时,按钮处于活动状态。如果单元格值更改为 FALSE,我希望按钮处于非活动状态。感谢您的帮助!
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Sheet8.Range("E15")
If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
If Sheet8.Range("E15").Value = True Then CommandButton1.Enabled = True
If Sheet8.Range("E15").Value = False Then CommandButton1.Enabled = False
End If
End Sub
这里的问题似乎是单元格值实际上并没有发生变化,这并没有触发宏。
如果您将宏从 Worksheet_Change 更改为 Selection_Change,此宏将在每次用户操作后触发。这应该可以解决您的问题。
使用 KeyCells.Value 而不是 sheet 并将按钮名称更改为更具描述性的名称。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Sheet8.Range("E15")
If KeyCells.Value = TRUE Then
CommandButton1.Enabled = True
Else
CommandButton1.Enabled = False
End If
End Sub