




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
技巧1 输入时逐步提示信息用户在录入数据时,比如在工作表中输入产品名称,除了希望有所有产品名称的下拉列表供选择外,更希望能逐步给出提示信息。比如在输入一两个字符后把符合条件的数据筛选出来供选择,最好是中英文、拼音首字母、大小写能混合查询,如输入“LJ”或“六角”后所有以“六角”开头的产品名称都筛选到列表中供选择,这将大大提高录入速度和正确率。为了达到这一目的,首先在工作簿需要有如图 1141所示的基础数据表。图 11基础数据表基础数据表中A列保存不重复的产品名称,为了能用中英文、拼音首字母、大小写混合查询,要把产品名称转换成小写的拼音首字母保存在B列。步骤1:在VBE窗口单击菜单“插入”“模块”,在代码窗口写入下面的代码。#001 Public Function LChin(Str As String) As Variant#002 On Error Resume Next#003 Str = StrConv(Str, vbNarrow)#004 If Asc(Str) 0 Or Err.Number = 1004 Then LChin = #005 LChin = WorksheetFunction.VLookup(Str, 吖,a;八,b;嚓,c;咑,d;鵽,e;发,f;猤,g;铪,h;夻,j;咔,k;垃,l;嘸,m;旀,n;噢,o;妑,p;七,q;囕,r;仨,s;他,t;屲,w;夕,x;丫,y;帀,z, 2)#006 End Function代码解析:自定义LChin函数,该函数把中文字符转换为拼音首字母。步骤2:在VBE窗口双击Sheet2表,在代码窗口写入下面的代码。#001 Private Sub Worksheet_Change(ByVal Target As Range)#002 Dim i As Integer#003 Dim myStr As String#004 With Target#005 If .Column 1 Or .Count 1 Then Exit Sub#006 If WorksheetFunction.CountIf(Sheet2.Range(A:A), .Value) 1 Then#007 .Value = #008 MsgBox 不能输入重复的产品名称!, 64#009 Exit Sub#010 End If#011 For i = 1 To Len(.Value)#012 If Asc(Mid$(.Value, i, 1) 255 Or Asc(Mid$(.Value, i, 1) 1 Then#005 With Me.TextBox1#006 .Visible = True#007 .Top = Target.Top#008 .Left = Target.Left#009 .Width = Target.Width#010 .Height = Target.Height#011 .Activate#012 End With#013 With Me.ListBox1#014 .Visible = True#015 .Top = Target.Top#016 .Left = Target.Left + Target.Width#017 .Width = Target.Width#018 .Height = Target.Height * 5#019 For i = 2 To Sheet2.Range(A65536).End(xlUp).Row#020 .AddItem Sheet2.Cells(i, 1).Value#021 Next#022 End With#023 Else#024 Me.ListBox1.Clear#025 Me.TextBox1 = #026 Me.ListBox1.Visible = False#027 Me.TextBox1.Visible = False#028 End If#029 End If#030 End Sub代码解析:工作表的SelectionChange事件,当用户选定工作表A列第2行以下的单个单元格时,设置文本框和列表框的Visible为True,使它们成为可见的,并设置其外观,同时给列表框加载列表项。当用户选定其他列的单元格时隐藏文本框和列表框控件。步骤4:在设计模式下双击文本框,在代码窗口写入下面的代码。#001 Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)#002 Dim i As Integer#003 Dim Language As Boolean#004 Dim myStr As String#005 Me.ListBox1.Clear#006 With Me.TextBox1#007 For i = 1 To Len(.Value)#008 If Asc(Mid$(.Value, i, 1) 255 Or Asc(Mid$(.Value, i, 1) 0 Then#009 Language = True#010 myStr = myStr & Mid$(.Value, i, 1)#011 Else#012 myStr = myStr & LCase(Mid$(.Value, i, 1)#013 End If#014 Next#015 End With#016 With Sheet2#017 For i = 2 To .Range(A65536).End(xlUp).Row#018 If Language = True Then#019 If Left(.Cells(i, 1).Value, Len(myStr) = myStr Then#020 Me.ListBox1.AddItem .Cells(i, 1).Value#021 End If#022 Else#023 If Left(.Cells(i, 2).Value, Len(myStr) = myStr Then#024 Me.ListBox1.AddItem .Cells(i, 1).Value#025 End If#026 End If#027 Next#028 End With#029 End Sub代码解析:文本框的KeyUp事件,在文本框输入查询条件时筛选符合条件的数据加载到列表框。第3行代码,声明变量Language为Boolean数据类型,在下面的代码中使用Language的值判断输入的是否为中文。第5行代码,使用Clear方法删除列表框所有的列表项,语法如下:object.Clear参数object是必需的,一个有效的对象。注意 如果列表框绑定了数据,Clear方法将会失败。第6行到第15行代码,判断文本框输入的是否为中文字符。如果是中文字符,将变量Language赋值为True,并把文本框中的字符赋给变量myStr。如果是英文字符则转换成小写字母后赋变量myStr。第16行到第29行代码,如果变量Language的值为True,在基础数据表的A列中使用Left函数查找与文本框字符相符的单元格并加载到列表框,否则就在B列查找。步骤5:在设计模式下双击文本框,在代码窗口写入下面的代码。#001 Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)#002 If KeyCode = vbKeyReturn Then#003 Sheet1.ListBox1.Activate#004 End If#005 End Sub代码解析:文本框的KeyDown事件,当用户在文本框中输入完成,列表框中已显示所需的内容后按回车键后选择列表框。步骤6:在设计模式下双击列表框,在代码窗口写入下面的代码#001 Private Sub ListBox1_GotFocus()#002 On Error Resume Next#003 ListBox1.ListIndex = 0#004 End Sub代码解析:列表框的GotFocus事件,当用户在文本框中输入完成按回车键后,选定列表框中第1个条目,方便用户进行下一步操作。#001 Private Sub ListBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)#002 If KeyCode = vbKeyReturn Then#003 ActiveCell.Value = ListBox1.Value#004 Me.ListBox1.Clear#005 Me.TextBox1 = #006 Me.ListBox1.Visible = False#007 Me.TextBox1.Visible = False#008 End If#009 End Sub代码解析:列表框的KeyDown事件,当用户在列表框中按下回车后将列表框选中的条目写入到活动工作表的单元格中,同时清空文本框和列表框内容后隐藏,准备下一次录入。#001 Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)#002 ActiveCell.Value = ListBox1.Value#003 Me.ListBox1.Clear#004 Me.TextBox1 = #005 Me.ListBox1.Visible = False#0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力的多领域结合
- 新质生产力布局未来展望
- 2025年微生物学专业知识应用考核模拟试卷答案及解析
- 2025年全科护理护士技能操作能力测试卷答案及解析
- 2025年心内科护理学模拟试卷答案及解析
- 2025年药物制剂学口服溶解片的质量控制模拟评估试卷答案及解析
- 2025年内分泌科糖尿病高血压并发症护理操作规范测试答案及解析
- 2025年风湿病诊断和治疗试题答案及解析
- 2025年眼科疾病诊断与手术操作技巧模拟考试答案及解析
- 新质生产力视角下的银行业发展
- 村医依法执业培训课件
- 外科面试题目及答案
- 翻越您的浪浪山新学期开学第一课+课件
- 《不懂就问》教学课件
- 重症肺炎的体位管理
- 2025年干粉砂浆添加剂市场需求分析
- 2025年国企应聘测试题及答案
- 《创新创业基础 第2版》 课件 第1章 认识创业
- 鼾症的健康讲座:认识、预防与治疗
- 学堂在线 极区航海导航保障 期末考试答案
- 音乐种类介绍
评论
0/150
提交评论