VBA如何实现仅选中其他日期选项按钮时可编辑对应文本框
问题根源
你写的逻辑绑定在了otherDateTextBox_Change事件上,这个事件仅在「Other date」对应的文本框内容被修改时才会触发,你点击三个选项按钮的操作根本不会触发这段逻辑,所以状态不会更新,自然达不到预期效果。
解决方案
你需要把状态更新的逻辑绑定到三个选项按钮的点击事件上,推荐抽一个通用方法避免重复写代码:
- 先添加通用状态更新子过程
Private Sub UpdateOtherDateTextBoxState() ' 只有选中其他日期时文本框可编辑 Me.otherDateTextBox.Locked = Not Me.otherDateButton.Value End Sub
- 分别给三个选项按钮添加点击事件,调用上面的方法
Private Sub todayButton_Click() Call UpdateOtherDateTextBoxState End Sub Private Sub tomorrowButton_Click() Call UpdateOtherDateTextBoxState End Sub Private Sub otherDateButton_Click() Call UpdateOtherDateTextBoxState End Sub
- (可选优化)在窗体初始化事件中也调用一次这个方法,保证窗体刚打开时文本框状态就和默认选中的选项按钮匹配:
Private Sub UserForm_Initialize() Call UpdateOtherDateTextBoxState End Sub
内容的提问来源于stack exchange,提问作者elSwizzle
相关产品推荐
相关产品推荐

