Vba 根据日期隐藏/显示窗体的节

Vba 根据日期隐藏/显示窗体的节,vba,excel,Vba,Excel,最重要的是一个查询。不确定我是否可以在这里提问而不提交代码?但不管怎样,还是这样 想知道是否可以在Excel中使用vba根据日期显示/隐藏表单的部分。我正在创建的表单将用于审核,每个月完成一次不同的审核。该表格将按如下所述使用 工作簿打开----用户输入患者id号(用于从数据库检索数据的查找功能(我不需要这方面的帮助)---用户从下拉列表中选择是/否 是-根据日期显示相关表格 否-叶按原样形成 想不出合适的方法来解决设置表单和不知道如何显示/隐藏节的问题,因此任何建议都将不胜感激。您的问题有点开

最重要的是一个查询。不确定我是否可以在这里提问而不提交代码?但不管怎样,还是这样

想知道是否可以在Excel中使用vba根据日期显示/隐藏表单的部分。我正在创建的表单将用于审核,每个月完成一次不同的审核。该表格将按如下所述使用

工作簿打开----用户输入患者id号(用于从数据库检索数据的查找功能(我不需要这方面的帮助)---用户从下拉列表中选择是/否

是-根据日期显示相关表格 否-叶按原样形成


想不出合适的方法来解决设置表单和不知道如何显示/隐藏节的问题,因此任何建议都将不胜感激。

您的问题有点开放,显然没有明确的答案。以下是我的一些初步想法:

如果您的表单变化不大(即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

如果我以后可以添加到这里,我会这样做。这对您有帮助吗?

您是指userform中的表单,还是指经过精心设计而看起来像表单的工作表?@Extrain-经过精心设计而看起来像表单的工作表。我知道您来自何方,因为我可以在工作表中添加按钮,以便用户可以选择要添加的表单我想填写。但是表格又长又乱,最好放在工作表上。非常感谢。这就是我一直在寻找的建议。只是想不出怎么做。我想在不同的工作表上显示表格会更好。再次感谢