Excel VBA 用户窗体打开时读取当前值
Excel VBA Userform read current values when opening
我正在尝试为工作表的 hiding/showing 个不同列创建一个用户表单。
所以我制作了一个按钮,使用以下代码打开用户窗体(称为 'hider'):
Private Sub CommandButton1_Click()
Hider.Show
End Sub
用户表单当前包含两个复选框,它们使用以下方法隐藏所选列:
Private Sub Week3_Click()
Range("N:Q").Columns.Hidden = Not Week3
End Sub
因此,如果复选框 'checked' 显示列,如果 'unchecked' 列隐藏,这部分工作,除了每次打开用户窗体时它都会将复选框重置为其原始状态'unchecked',而列保持隐藏(没关系)。
所以我的问题是:
如何将用户表单中的复选框同步到列的当前活动值?我正在考虑在用户窗体上制作一个同步按钮或在打开用户窗体时读取所有当前值的操作,但我无法让它工作。
如果我正确理解您的问题(“...或在打开用户窗体时读取所有当前值的操作”),只需在用户窗体代码模块中使用以下代码在打开时同步您的复选框:
Private Sub UserForm_Initialize()
'Me.Week3.Value = IIf(ActiveSheet.Range("N:Q").Columns.Hidden = True, False, True)
Me.Week3.Value = Not ActiveSheet.Range("N:Q").Columns.Hidden ' simplified due to comment thx Mathieu Guindon
' ...
End Sub
我正在尝试为工作表的 hiding/showing 个不同列创建一个用户表单。
所以我制作了一个按钮,使用以下代码打开用户窗体(称为 'hider'):
Private Sub CommandButton1_Click()
Hider.Show
End Sub
用户表单当前包含两个复选框,它们使用以下方法隐藏所选列:
Private Sub Week3_Click()
Range("N:Q").Columns.Hidden = Not Week3
End Sub
因此,如果复选框 'checked' 显示列,如果 'unchecked' 列隐藏,这部分工作,除了每次打开用户窗体时它都会将复选框重置为其原始状态'unchecked',而列保持隐藏(没关系)。
所以我的问题是:
如何将用户表单中的复选框同步到列的当前活动值?我正在考虑在用户窗体上制作一个同步按钮或在打开用户窗体时读取所有当前值的操作,但我无法让它工作。
如果我正确理解您的问题(“...或在打开用户窗体时读取所有当前值的操作”),只需在用户窗体代码模块中使用以下代码在打开时同步您的复选框:
Private Sub UserForm_Initialize()
'Me.Week3.Value = IIf(ActiveSheet.Range("N:Q").Columns.Hidden = True, False, True)
Me.Week3.Value = Not ActiveSheet.Range("N:Q").Columns.Hidden ' simplified due to comment thx Mathieu Guindon
' ...
End Sub