创build整个数字的dynamic下拉列表

道歉,如果这已经被问到的地方!

我试图在Excel中创builddynamic下拉列表,其中唯一可用的选项是1和x之间的整数,其中x是任何整数(通常不会大于20左右)。 x由该行另一个单元格中的值定义。

所以理想情况下,我会有一个2列的表,其中一列有整个数字x(代表列表的最大值),其旁边的列将有1和x之间的下拉菜单。

因此,创build数据validation下拉菜单时需要使用的公式是什么。 一些代表:“最小1到最大x范围内的所有数字”

下面是一个看起来如何的例子: 例子

谢谢!

非VBA的方式

首先在D栏列出1到20,最多只有20个

然后selectB2并添加validation,List – > = OFFSET($ D $ 1,0,0,A2,1)

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

在这里输入图像说明

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

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:

macros很容易安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

删除macros:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel 使用macros:

  1. select应该input下拉列表的单元格
  2. ALT-F8
  3. selectmacros
  4. 触摸RUN

要了解有关macros的更多信息,请参阅:

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

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

macros必须启用这个工作!