excel vba下拉菜单怎么做

excel vba下拉菜单怎么做,第1张

工具: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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11573571.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存