Vba 如果选择了“下拉值”,请在右侧的单元格中添加格式和值

Vba 如果选择了“下拉值”,请在右侧的单元格中添加格式和值,vba,excel,excel-2010,Vba,Excel,Excel 2010,好的,我正在制作一个表单,用户可以从下拉列表中选择一个值,然后需要根据选择查看所需的参数 例如: 如果我从下拉列表中选择X,那么将创建三个新的输入字段,并将其格式化为输入单元格,参数为默认值,因此黄橙色的输入格式带有默认文本,解释参数是什么,比如一个字段的开始日期,然后是下一个结束日期 我的开始: Sub test() If ActiveCell = "setEnrollnet" Then ActiveCell.Offset(0, 1) = startDate ActiveCell.

好的,我正在制作一个表单,用户可以从下拉列表中选择一个值,然后需要根据选择查看所需的参数

例如:

如果我从下拉列表中选择X,那么将创建三个新的输入字段,并将其格式化为输入单元格,参数为默认值,因此黄橙色的输入格式带有默认文本,解释参数是什么,比如一个字段的开始日期,然后是下一个结束日期

我的开始:

Sub test()
If ActiveCell = "setEnrollnet" Then
   ActiveCell.Offset(0, 1) = startDate
   ActiveCell.Offset(1).EntireRow.Insert
   ActiveCell.Offset(1, 1) = 0
   ActiveCell.Offset(0, 2) = endDate
   ActiveCell.Offset(1).EntireRow.Insert
   ActiveCell.Offset(1, 2) = 0

End If
End Sub

这不好用,也不应用格式。我需要帮助了解如何根据另一个单元格中的选择设置格式和输入正确的文本。

我建议-对于下拉列表中的每个值-在单独的工作表中定义输入字段,以及字段标签和格式。从下拉菜单中选择后,扫描参数表,并将该参数的列表复制到输入表中

名为InputParams的示例范围:

ParamVal    InputLabel     InputField
X           StartDate      (empty but formatted)
X           EndDate        (empty but formatted)
Y           Foo            default_Foo
Y           Bar            default_Bar
从下拉列表中选择X后,您将遍历InputParams和, 如果InputParamsIdx,1=DropDownValue,则将单元格InputParamsIndex,2和InputParamsIndex,3复制到您的输入范围-默认情况下,格式随内容一起复制

最好也为输入定义一个命名范围,使其具有预期的最大参数大小,以便在遍历InputParams列表时,在重新填充该范围之前,可以使用一条语句清除内容和格式