我正在尝试生成具有动态条件显示的用户输入表单。换句话说,当表单首次打开时,我希望某些单元格不显示,然后我希望它们在用户开始输入数据时显示或不显示。这是我现在拥有的:
根据用户是否从C3中的框中选择“天”或“小时”,我希望隐藏第6到8行。同样,如果用户选择“小时”,则应隐藏第9行到第11行。这是我到目前为止写的:
PivotCache
这不起作用。即使它确实如此,我认为这将要求用户每次打开此工作簿时都必须手动运行此宏,这是需要避免的。
有什么建议吗?
答案 0 :(得分:3)
将此代码放在工作簿附带的模块中
Sub ConditionalDisplay()
With Worksheets("Calculator")
IF .Range("C3") <> "Days" And .Range("C3") <> "Hours" Then
.Rows("6:11").Hidden = True
Else
.Rows("6:8").Hidden = .Range("C3") = "Days"
.Rows("9:11").Hidden = .Range("C3") = "Hours"
End If
End With
End Sub
然后在Calculator
的工作表代码中输入此事件代码:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C3")) Is Nothing Then
ConditionalDisplay
End If
End Sub
然后在ThisWorkbook Code中放置此事件:
Private Sub Workbook_Open()
Worksheets("Calculator").Range("C3") = ""
ConditionalDisplay
End Sub