打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Vba实现Excel感知下拉列表
Vba实现Excel感知下拉列表

Excel可以使用下拉列表来提高输入效率这个是大家比较了解的了,但是人们追求工作效率是永无止境的,正是"没有最懒,只有更懒"。

那么,我们是否可以将下拉列表做成智能感知的效果呢,先看一下如下效果图:


这种效果方便于长期对某表格操作的朋友,直接用索引来实现便捷的数据输入,说了这么长时间到底是如何实现的呢,如下:

1、建立Excel下拉菜单(这个大家应该都熟悉,不熟悉的朋友可以百度搜索一下),重要的是需要设置一下,将"数据有效性"的"出错警告"选项卡中的"输入无效数据时显示出错警告"前方的勾选去掉,如下图(不然频繁的警告会让你疯掉 ):

2、下面就是Vba的事情了(如果您对Vba不是很了解的话,建议您弄本相关的书看一下)。
'首先建立一个全局变量,用于存储是否为代码做出的更改
Public isMe As Boolean
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
'在工作簿如下事件中,输入如下代码,即可实现感知效果
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
            ByVal Target As Range)
  If isMe Then
    isMe = False
    Exit Sub
  End If
  On Error GoTo ExitMe
  Dim Arr
  Dim i As Integer
  Dim IsFind As Boolean
  IsFind = False
  If Target.Validation.Type = 3 Then
    Arr = Split(Target.Validation.Formula1, ",")
    For i = 0 To UBound(Arr)
     If InStr(1, Arr(i), Target.Value, vbTextCompare) <> 0 Then
       isMe = True
       Target.Value = Arr(i)
       IsFind = True
       Exit For
     End If
   Next
   If Not IsFind Then
     MsgBox "数据输入错误!", vbCritical
     Target.Select
   End If
 End If
ExitMe:
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
            ByVal Target As Range)
isMe = False
End Sub

怎么样,是不是事半功倍呢,哈哈,如果您想关注更多的智能办公的技巧,请订阅本站。

 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
完全手册Excel VBA典型实例大全:通过368个例子掌握
VBA文本框输入智能提示
你会用Excel做「下拉菜单」吗?5种类型,最后一个你100%没见过
VBA学习笔记78: VBA函数封装
【Excel·VBA】今天带你初识数组
Excel VBA将某列数值存入一个数组
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服