如何使 Excel 用户窗体仅在基于单元格值时显示一次
How to make Excel UserForm only show up once when based on cell value
B 列中的单元格是下拉列表。因此,如果有人在单元格 B2 中选择 "Reminder",则将显示用户窗体。我希望 B 列中的每个单元格都发生这种情况。我下面的代码实现了这一点,但是,每次我在 excel 中单击时,用户窗体都会继续弹出。即使我已经在我的用户窗体中提交了数据。我如何才能让它只对每个具有 "Reminder" 值的单元格工作一次,但如果其他单元格作为 "Reminder" 输入,则保持显示表单的能力。如果 B2 是唯一一个作为 "Reminder" 输入的表格,我不希望每次在 sheet 中移动时表格一直显示。这是我第一次涉足 UserForms,所以我希望我的问题是有道理的。任何帮助表示赞赏。谢谢!
代码:
Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cell As Range
For Each cell In Range("B:B")
If cell.Value = "Reminder" Then
UserForm1.Show
End If
Next cell
End Sub
我建议你改用Worksheet_Change
:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Value = "Reminder" Then UserForm1.Show
End Sub
B 列中的单元格是下拉列表。因此,如果有人在单元格 B2 中选择 "Reminder",则将显示用户窗体。我希望 B 列中的每个单元格都发生这种情况。我下面的代码实现了这一点,但是,每次我在 excel 中单击时,用户窗体都会继续弹出。即使我已经在我的用户窗体中提交了数据。我如何才能让它只对每个具有 "Reminder" 值的单元格工作一次,但如果其他单元格作为 "Reminder" 输入,则保持显示表单的能力。如果 B2 是唯一一个作为 "Reminder" 输入的表格,我不希望每次在 sheet 中移动时表格一直显示。这是我第一次涉足 UserForms,所以我希望我的问题是有道理的。任何帮助表示赞赏。谢谢!
代码:
Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim cell As Range
For Each cell In Range("B:B")
If cell.Value = "Reminder" Then
UserForm1.Show
End If
Next cell
End Sub
我建议你改用Worksheet_Change
:
Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Value = "Reminder" Then UserForm1.Show
End Sub