只是一个查询而不是任何东西。不确定我是否可以在这里提问而不提交代码?但无论如何这里都有。
想知道在Excel中是否可以使用vba显示/隐藏表单的各个部分,具体取决于它的日期。我正在创建的表单将用于审计,每个月都会完成不同的审计。表格将按如下所述使用。
工作簿打开----用户输入患者ID号(用于从数据库中检索数据的查找功能(我不需要帮助此位)-----用户从下拉列表中选择是/否
是 - 根据日期显示相关表格 不 - 叶子形式。
无法想出一个合适的方法来解决设置表格并且不知道如何显示/隐藏部分所以任何建议都会感激不尽。
答案 0 :(得分:1)
你的问题有点开放,显然没有明确的答案。以下是我的一些初步想法:
如果您的表单只是略有不同(即90%相同而且只有10%是可变的)并且只是表单的某个部分有所不同,那么可能会创建每个部分然后有选择地隐藏。
例如,假设我有一个不同的部分取决于用户是否是女性的男性。我可以构建两个部分然后显示/隐藏如下:
If gender = "Male" Then
Rows("10:20").EntireRow.Hidden = True //Assume you built male section in rows 10 to 20
Range("20:30").EntireRow.Hidden = false //Assume you built female section in 20 to 30
Else // replicate code for female scenario
Rows("10:20").EntireRow.Hidden = False
Rows("20:30").EntireRow.Hidden = True
End if
如果您的表单变化很多(即只有10%的静态和90%的变量),我的经验是您最好在不同的工作表中单独构建每个表单,然后相应地显示:
If gender = "Male" Then
Worksheets("maleForm").Visible = True
Else
Worksheets("femaleForm").Visible = True
End if
如果输入字段不同,则可以考虑选择性地禁用某些字段:
If gender = "Male" Then
Worksheets("myForm").OLEObjects("lipstickDropDown").Enabled = False //Using Control Toolbox items e.g. textbox, combobox etc...
Worksheets("myForm").OLEObjects("beerDropDown").Enabled = True
Else
Worksheets("myForm").OLEObjects("lipstickDropDown").Enabled = True
Worksheets("myForm").OLEObjects("beerDropDown").Enabled = False
End if
如果我稍后可以添加,我会这样做。这有什么帮助你吗?