如果已经在某处问过这个问题,请道歉!
我正在尝试在excel中创建动态下拉列表,其中唯一可用的选项是1到x之间的整数,其中x是任意整数(通常不会大于20)。 x由该行中另一个单元格中的值定义。
理想情况下,我有一个2列表,其中一列具有整数x(表示列表的最大值),旁边的列将具有介于1和x之间的下拉菜单。
因此,在创建数据验证下拉菜单时需要使用的公式是什么。代表的东西:'最小1和最大x'之间的所有整数。
下面是一个示例: Example
谢谢!
答案 0 :(得分:1)
非VBA方式
首先在D列上列出1到20,因为最大值只有20
然后选择B2并添加验证,列表 - > = OFFSET($ d $ 1,0,0,A2,1)
然后你可以将B2复制到B3,B4,......等等,它会相应地工作。
答案 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:强>
宏很容易安装并使用:
如果保存工作簿,宏将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
要删除宏:
从Excel 使用宏:
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其生效!