工具:Office2013
方法如下:
在允许下,选择“序列”,在来源中输入下拉菜单内容,注意用英文逗号分隔,完成后,点击确定:
这样,就在Excel中制作好了下拉菜单:
Private Sub UserForm_Initialize()Dim i As Integer
For i = 1 To Sheets.Count
Me.ComboBox1.AddItem Sheets(i).Name
Next
End Sub
如果楼主的下拉列表指的是组合框而不是Sheet中的自动筛选或数据有效性的话,上面是一个样本,在窗体中的一个组合框ComboBox1在窗体UserForm的初始化事件中,把当前工作簿的每个Sheet的名字加到了List中,使用的是ComboBox的AddItem方法。
你可以循环将字符串连接起来,再赋值给 formula1 嘛
实在要单条加入的话,看下面我写的一个例子(实质还是拼接):
Sub test(rg As Range, str1 As String)If InStr(rg.SpecialCells(xlCellTypeAllValidation).Address, rg.Address) = 0 Then
rg.Validation.Add xlValidateList, xlValidAlertStop, xlBetween, str1
Else
rg.Validation.Modify , , , rg.Validation.Formula1 & "," & str1
End If
End Sub
使用方法:
Sub abc()test Range("j3"), "gh"
str2 = Array("abdf", "gegw", "ggsew")
For i = 0 To UBound(str2)
test Range("j4"), str2(i)
Next
'下面是先拼接字符串,再添加下拉框
ss = ""
For i = 0 To UBound(str2)
If ss <> "" Then ss = ss & ","
ss = ss & str2(i)
Next
Range("j5").Validation.Add xlValidateList, xlValidAlertStop, xlBetween, ss '或者用你那录制出来的代码添加也是可以的
End Sub
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)