创建整数的动态下拉列表

时间:2015-12-06 14:11:47

标签: excel drop-down-menu

如果已经在某处问过这个问题,请道歉!

我正在尝试在excel中创建动态下拉列表,其中唯一可用的选项是1到x之间的整数,其中x是任意整数(通常不会大于20)。 x由该行中另一个单元格中的值定义。

理想情况下,我有一个2列表,其中一列具有整数x(表示列表的最大值),旁边的列将具有介于1和x之间的下拉菜单。

因此,在创建数据验证下拉菜单时需要使用的公式是什么。代表的东西:'最小1和最大x'之间的所有整数。

下面是一个示例: Example

谢谢!

2 个答案:

答案 0 :(得分:1)

非VBA方式

首先在D列上列出1到20,因为最大值只有20

然后选择B2并添加验证,列表 - > = OFFSET($ d $ 1,0,0,A2,1)

然后你可以将B2复制到B3,B4,......等等,它会相应地工作。

enter image description here

答案 1 :(得分:0)

DV 需要一系列单元格或逗号分隔的字符串。因此:

Sub qwerty()
   Dim N As Long, i As Long
   N = Application.InputBox(Prompt:="Number ?", Type:=1)
   dv_string = "1"

   For i = 2 To N
      dv_string = dv_string & "," & i
   Next i

   With Selection.Validation
       .Delete
       .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
       xlBetween, Formula1:=dv_string
       .IgnoreBlank = True
       .InCellDropdown = True
       .InputTitle = ""
       .ErrorTitle = ""
       .InputMessage = ""
       .ErrorMessage = ""
       .ShowInput = True
       .ShowError = True
   End With

End Sub

修改#1:

宏很容易安装并使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开了一个新模块
  3. 粘贴内容并关闭VBE窗口
  4. 如果保存工作簿,宏将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx

    删除宏:

    1. 按上述方式调出VBE窗口
    2. 清除代码
    3. 关闭VBE窗口
    4. 从Excel 使用宏:

      1. 选择应在其中输入下拉列表的单元格
      2. ALT-F8
      3. 选择宏
      4. 触碰RUN
      5. 要了解有关宏的更多信息,请参阅:

        http://www.mvps.org/dmcritchie/excel/getstarted.htm

        http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

        必须启用宏才能使其生效!