excel用vba实现下拉菜单,不知道怎么加入一个根据条件显示下拉菜单功能

当判断列为否的时候,同一行的银行列点击不会出现下拉菜单,可以随意输入内容
Private Sub ListBox1_Click()
ActiveCell.Value = Me.ListBox1.Value
Me.ListBox1.Visible = False
Me.TextBox1.Visible = False
End Sub
Private Sub TextBox1_Change()
Dim arr, i%, j%, d
Set d = CreateObject("scripting.dictionary")
arr = Sheet2.Range("A1").CurrentRegion
For i = 2 To UBound(arr)
If InStr(arr(i, 1), Me.TextBox1.Value) Then
d(arr(i, 1)) = ""
End If
Next
Me.ListBox1.Clear
If d.Count >= 1 Then Me.ListBox1.List = d.keys
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Me.TextBox1.Visible = False: Me.ListBox1.Visible = False: Exit Sub
If Target.Column <> 3 Then Me.TextBox1.Visible = False: Me.ListBox1.Visible = False: Exit Sub
If Target.Row < 7 Then Me.TextBox1.Visible = False: Me.ListBox1.Visible = False: Exit Sub
Dim arr, i%, j%, d
Set d = CreateObject("scripting.dictionary")
arr = Sheet2.Range("A1").CurrentRegion
For i = 2 To UBound(arr)
d(arr(i, 1)) = ""
Next
With Me.TextBox1
.Top = Target.Top
.Left = Target.Left
.Width = Target.Width
.Height = Target.Height
.Activate
.Value = ""
.Visible = True
End With
With Me.ListBox1
.Clear
.Top = Target.Offset(0, 1).Top
.Left = Target.Offset(0, 1).Left
.Height = Target.Offset(0, 1).Height * 4
.Width = Target.Offset(0, 1).Width
.List = d.keys
.Visible = True
End With
End Sub
...全文
相关推荐
在Excel中用VBA实现下拉菜单
在Excel中用VBA实现下拉菜单,你的Excel地盘你做主! 在Excel中用VBA实现下拉菜单,你的Excel地盘你做主!
Excel VBA实现三级下拉菜单技巧详解
Excel VBA 是一种事件驱动的编程语言,与Excel的界面和数据处理紧密集成。通过VBA,用户可以编写宏来执行重复性的任务,如数据排序、报告生成等。为了熟练运用VBA,首先需要掌握以下基础:VBA编辑器的界面布局和基本操作。常用VBA数据类型,如String、Integer、Double、Boolean等。控制结构:条件语句(如If…Then…Else)和循环结构(如For…Next)。
vba制作动态下拉菜单0919
vba制作动态下拉菜单0919
excel中不打开文件调用其它文件数据(VBA)
excel中不打开文件调用其它文件数据(VBA)
VBA实现EXCEL多表格多条件查询
VBA实现EXCEL多表格多条件查询 For i = 1 To Workbooks.Count For Each c In Sheets(i).UsedRange If c.Value >= 150 And c.Value <= 160 Then c1 = c1 + c.Value n = n + 1 End If ‘更多条件…… Next Next


