20170405xlVBA快速录入
Dim Rng As Range
Dim Arr As Variant
Dim LastCell As Range
Dim FindText As String
Dim ItemCount As Long
Dim Dic As Object
Private Sub CbOption_Change()
FindText = CbOption.Text
If Len(FindText) > 0 Then
If Dic.Exists(FindText) = False Then
Call FilterItems
End If
End If
End Sub
Private Sub CbOption_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Application.EnableEvents = False
If KeyCode = 13 Then
LastCell.Value = CbOption.Text
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 5 Then
If Target.Rows.Count = 1 Then
Set LastCell = Target
Me.CbOption.Visible = True
Me.CbOption.Left = Target.Left
Me.CbOption.Top = Target.Top
Me.CbOption.Width = Target.Width * 1.5
Me.CbOption.Height = Target.Height * 1.5
Me.CbOption.Text = ""
Call AddItems
End If
Else
Me.CbOption.Clear
Me.CbOption.Visible = False
End If
Application.EnableEvents = True
End Sub
Private Sub AddItems()
Me.CbOption.Clear
Set Dic = CreateObject("Scripting.Dictionary")
Set Rng = Application.ThisWorkbook.Worksheets("选项").Range("A1:A117")
Arr = Rng.Value
For i = LBound(Arr) To UBound(Arr)
Key = CStr(Arr(i, 1))
Dic(Key) = ""
Me.CbOption.AddItem Key
Next i
End Sub
Private Sub FilterItems()
ItemCount = Me.CbOption.ListCount - 1
Set Rng = Application.ThisWorkbook.Worksheets("选项").Range("A1:A117")
Arr = Rng.Value
For i = LBound(Arr) To UBound(Arr)
Key = CStr(Arr(i, 1))
If Key Like "*" & FindText & "*" Then
Me.CbOption.AddItem Key
End If
Next i
For i = ItemCount To 0 Step -1
Me.CbOption.RemoveItem (i)
Next i
End Sub
20170405xlVBA快速录入的更多相关文章
- WPF 4.0 DatePicker 快速录入
WPF 4.0的DatePicker在通过键盘录入日期的时候是非常让人郁闷的.必须按照日期的格式来完整输入例如,比如输入“2010/10/10”才能识别.而实际上在一些要求快速录入的场合,用户更希望直 ...
- 在Winform开发框架中,利用DevExpress控件实现数据的快速录入和选择
在实际的项目开发过程中,有好的控件或者功能模块,我都是想办法尽可能集成到我的WInform开发框架中,这样后面开发项目起来,就可以节省很多研究时间,并能重复使用,非常高效方便.在我很早之前的一篇博客& ...
- JAVAEE——BOS物流项目09:业务受理需求分析、创建表、实现自动分单、数据表格编辑功能使用方法和工作单快速录入
1 学习计划 1.业务受理需求分析 n 业务通知单 n 工单 n 工作单 2.创建业务受理环节的数据表 n 业务通知单 n 工单 n 工作单 3.实现业务受理自动分单 n 在CRM服务端扩展方法根据手 ...
- 运单waybill快速录入
运单waybill快速录入 前台页面: 1修改页面onAfterEdit事件, 后台代码:ajax响应回请求1 为成功,0 为失败
- 项目一:第十一天 2、运单waybill快速录入 3、权限demo演示-了解 5、权限模块数据模型 6、基于shiro实现用户认证-登录(重点)
1. easyui DataGrid行编辑功能 2. 运单waybill快速录入 3. 权限demo演示-了解 4. Apache shiro安全框架概述 5. 权限模块数据模型 6. 基于shiro ...
- 个人永久性免费-Excel催化剂功能第72波-序列规则下的数据验证有效性好帮手:快速录入窗体辅助录入
Excel作为最好用的数据录入工具,没有之一,如果能够充分利用好Excel的灵活性和规范性,将带来极大的生产力提升,前面的几波功能也有做了几大数据录入的辅助功能,今天再次给大家带来一个特定的使用场景, ...
- 个人永久性免费-Excel催化剂功能第66波-数据快速录入,预定义引用数据逐字提示
在前面好几波的功能中,为数据录入的规范性做了很大的改进,数据录入乃是数据应用之根,没有完整.干净的数据源,再往下游的所有数据应用场景都是空话.在目前IT化进程推进了20多年的现状,是否还仍有必要在Ex ...
- ComfortTypingPro快速录入工具
1.简介 Comfort Typing Pro 官方中文注册版是一款非常方便的键盘快速录入辅助工具, 也可以叫做键盘宏工具吧. 程序的主要功能是可以帮助你快速的输入大量需要重复输入的内容, 支持文本和 ...
- Excel的快速录入
数据有效性: 1.选择要限制数据有效性的区域: 2.点开[数据]选项卡选择”数据验证“: 3.[设置]中选择”序列": 4.若手动输入则需要将内容使用英文符号分割开来(比如:A级,B级): ...
随机推荐
- Python:slice与indices
slice: eg: >>>e=[0,1,2,3,4,5,6] >>>s=slice(2,3) >>>e[s] [2] slice的区间左闭右开[ ...
- python的subprocess的简单使用和注意事项
subprocess是python在2.4引入的模块, 主要用来替代下面几个模块和方法: os.systemos.spawn*os.popen*popen2.*commands.* 可以参考PEP32 ...
- RHEL6.4 字符模式下安装图形界面图文教程
本文转自:http://www.cnblogs.com/wahsonleung/p/3230325.html 第1步:当然就是启动redhat,设置映像文件. 第2步:命令行输入yum groupin ...
- 出现“基础链接已关闭,无法链接到远程服务器"错误的解决办法
一些用户在安装一些软件或是系统做某些修改后,采集器就没无登录或是无法获取到网页.登录或是使用httppostget工具会出现 ”基础链接已关闭,无法链接到远程服务器“的提示.经分析,是系统Socket ...
- ACM题目———— 一种排序(STL之set)
描述 输入 第一行有一个整数 0<n<10000,表示接下来有n组测试数据:每一组第一行有一个整数 0<m<1000,表示有m个长方形:接下来的m行,每一行有三个数 ,第一个数 ...
- Hive-复制表
非分区表复制 复制一张非分区表,使用CREATE TABLE IF NOT EXISTS AS SELECT * FROM tb_name;只复制表结构,CREATE TABLE IF NOT EXI ...
- ThinkPHP5跨控制器调用
1.在application\index\controller\文件夹里新建User.php <?php namespace app\index\controller; class User{ ...
- 20145127 《Java程序设计》第一周学习总结
通过第一周的Java程序设计的学习,听了娄老师的第一堂课,虽然课堂上老师并没有一开始就讲许多专业的知识,而是带领着我们对于Java这门语言,并不仅仅是一门语言,经行了初步的认识与了解,并且对于Java ...
- dp练习 2016.2.24
很经典的一道状压dp(似乎叫做旅行商问题),用f[i][s]表示在到达点i,已经经过的城市用二进制表示为s,于是方程就很简单了: f[i][s] = min { f[j][s ^ (1 << ...
- VC++ 文件和应用程序关联,默认图标不显示问题