宏代码在下拉列表中显示很多输入范围

时间:2014-12-04 10:20:36

标签: vba excel-vba excel

我需要一个宏代码来显示我在sheet2中通过表单控件创建的dropodown列表中的多个输入范围。

我想要一个具有IF逻辑的事件,其中我有许多名称范围来自另一张名称为例如:DaftarA(在sheet1 C1:C30中),DaftarB(在sheet1 C40:C60中) ,DaftarC(在sheet1 C70:C90中)。

如果写入值,如果sheet2中的值为C1 1,下拉列表将显示输入范围(名称范围)DaftarA,如果值为2则显示在下拉列表中(名称范围)dDftarB等等..

有什么可以帮助吗?谢谢

2 个答案:

答案 0 :(得分:0)

您可以通过偏移公式为列表定义名称,并将该名称用作数据验证下拉框列表。

=OFFSET(Sheet1!$B$1,Sheet1!$F$1,0,Sheet1!$E$1,1)

其中单元格B1位于列表的顶部,单元格F1显示您向下偏移的数量,单元格E1将控制列表的长度。但是,只有当您的多个范围位于同一工作表和同一列中时,它才会起作用

答案 1 :(得分:0)

如果您使用以下公式定义名称

,它也会起作用
=IF(Sheet1!$F$1=1,test1,IF(Sheet1!$F$1=2,test2,IF(Sheet1!$F$1=3,test3)))

但是在这种情况下,您需要命名您想要的每个特定范围(例如在此示例中为test1,test2,test3),当然您不能放置太多嵌套公式,因为它会变得混乱。