使用excel用户表单查找工作表来记录excel基础
首先,找到方法来找到所有的记录满足基于查询条件和分配的范围变量。其次,利用属性创建的自定义属性集语句传递范围变量的记录区域用户的形式,确保参考区出现在工作表中的顺序相同,后参数用于查找中设置搜索区域的最后一个单元格的方法和它的价值,所以,找到方法将开始搜索,从第一个细胞在细胞面积。
用户名为UPos,一些控件和文本框的名称的名称(txtname),(txtwork),文本框中的文本框的内容有记录(txty),有记录的文本框(txtx)、按钮(cmdprev),在一个按钮(cmdnext),有些标签控制。
在标准模块中输入以下代码:
Sub ShowPos()
昏暗的ufpos UPos用户窗体变量
暗淡而距离商店目前发现的细胞
昏暗的rnamerange范围的搜索单元面积
首先发现细胞的暗sfirstadd地址字符串
昏暗的rallfound范围的所有发现的细胞
从用户那里获取数据,这是为了方便而编写的硬编码。
不同的是字符串常量张三
集rnamerange = Sheet1。范围(A2:A8 )
查找
设置等级= rnamerange。发现(不同,rnamerange(rnamerange。细胞计数),xlvalues,xlwhole)
如果你找到了
如果不是由于什么然后
存储第一个被发现的单元的地址
sfirstadd =等级。地址
将已找到的单元格添加到单元格中所发现的所有单元格中
集rallfound =等级
继续查找直到循环开始
做
设置等级= rnamerange.findnext(等级)
如果由于地址<> sfirstadd然后。
集rallfound =联盟(rallfound,等级)
最后如果
循环直到而sfirstadd地址=。
创建用户窗体
集ufpos =新周期
将单元格区域传递给用户窗体
集ufpos.allfound = rallfound
UfPos。初始化
ufpos。显示
其他的
MsgBox没有找到匹配的数据!
最后如果
集ufpos =没有
端子
在用户表单模块中,一些模块级变量被声明为包含当前显示的转移区域和区域。
私人mrallfound范围
私人mrcurrent范围
属性设置allfound(RHS范围)
集mrallfound = rhs
最后的财产
在显示用户窗体之前,初始化窗体,并用第一个记录记录填充表单中的相应控件。
公共子初始化()
将当前记录设置为第一个记录
如果不mrallfound是没有然后
集mrcurrent = mrallfound(1)
me.txtname.text = mrcurrent。价值
me.txtwork.text = mrcurrent.next.value
me.txty.text = mrallfound.cells.count
me.txtx.text = 1
最后如果
端子
前面的按钮和下一个按钮的使用方法和记录findprevious移动到正确的位置在FindNext方法。
私有子cmdnext_click()
设置当前单元格
集mrcurrent = mrallfound.findnext(mrcurrent)
me.txtname.text = mrcurrent。价值
me.txtwork.text = mrcurrent.next.value
增加计数器值
me.txtx.text = me.txtx.text + 1
端子
私有子cmdprev_click()
集mrcurrent = mrallfound.findprevious(mrcurrent)
me.txtname.text = mrcurrent。价值
me.txtwork.text = mrcurrent.next.value
me.txtx.text = me.txtx.text - 1
端子
最后,当文本框的值发生变化时,启用或禁用按钮,以便用户无法尝试到达不存在的记录。
私有子txtx_change()
启用/禁用按钮
如果me.txtx.text = 1
me.cmdprev.enabled = false
其他的
me.cmdprev.enabled =真
最后如果
如果me.txtx.text = me.txty.text然后
me.cmdnext.enabled = false
其他的
me.cmdnext.enabled =真
最后如果
端子