Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: liwenhong

[已解决]查询上一个或下一个记录的代码问题,有代码,但不坚持!

[复制链接]
发表于 2014-4-15 16:13 | 显示全部楼层
我试了,一切正常。。。。。。。你干脆用2楼的代码吧。
回复

使用道具 举报

 楼主| 发表于 2014-4-15 21:48 | 显示全部楼层
本帖最后由 liwenhong 于 2014-4-15 21:55 编辑
grf1973 发表于 2014-4-15 16:13
我试了,一切正常。。。。。。。你干脆用2楼的代码吧。

       使用8楼的附件,解压后打开,此时D2单元格内有2421,按钮“上一条”和“下一条”都有动作。但是,您试试用“查询”按钮确定职工编号后,“上一条”和“下一条”按钮就出现了我说的情况,还请您再试试啊!谢谢!

只要一使用“查询”按钮就出现问题,使用在D2单元格内人工输入数字的方法,也能正常,就是不能使用“查询”的方法得到D2的值,有点邪门呀!(另外,我的鼠标正常啊)
回复

使用道具 举报

 楼主| 发表于 2014-4-15 22:03 | 显示全部楼层
grf1973 发表于 2014-4-15 16:13
我试了,一切正常。。。。。。。你干脆用2楼的代码吧。

请您一定使用“查询”按钮,来确定被查询的职工。这样就能发现问题了。
回复

使用道具 举报

发表于 2014-4-16 09:15 | 显示全部楼层    本楼为最佳答案   
哦,原因找到了,因为你的窗体里对数组arr重新进行了定义,和我原来定义的有所冲突。现在我把自己用的Arr全部改成了ar,就没问题了。

1.rar

129.5 KB, 下载次数: 27

评分

参与人数 1 +1 收起 理由
liwenhong + 1 很给力!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2014-4-16 11:07 | 显示全部楼层
grf1973 发表于 2014-4-16 09:15
哦,原因找到了,因为你的窗体里对数组arr重新进行了定义,和我原来定义的有所冲突。现在我把自己用的Arr全 ...

    非常感谢,这次的代码没有任何问题,简单、运行速度快!太谢谢您了!

因为这个文件以后要用到另一个电子表格工作薄(只读文件)中,我将打开工作薄事件中的代码移到了“查询”按钮下执行了,不知是否合适?请指教!

也就是将:
  1. 'Private Sub Workbook_Open()
  2. '    Set d = CreateObject("scripting.dictionary")
  3. '    ar = Sheets("信息库2").[a1].CurrentRegion
  4. '    For i = 2 To UBound(ar)
  5. '        d(ar(i, 1)) = i
  6. '    Next
  7. 'End Sub
复制代码
改为了:
  1. Private Sub CommandButton1_Click()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     ar = Sheets("信息库2").[a1].CurrentRegion
  4.     For i = 2 To UBound(ar)
  5.         d(ar(i, 1)) = i
  6.     Next
  7.     UserForm2.Show '打开窗体1
  8. End Sub
复制代码
回复

使用道具 举报

发表于 2014-4-16 11:14 | 显示全部楼层
那这样你要是没运行过查询,点击上一条,下一条会出错的。保险点的做法还是不要用公共变量了。
回复

使用道具 举报

发表于 2014-4-16 11:19 | 显示全部楼层
而且用公共变量的话,数组只在工作簿打开时一次定义。如果操作中信息库发生改变,数组不会同步改变的,这样会出现查询出错。
回复

使用道具 举报

 楼主| 发表于 2014-4-16 11:44 | 显示全部楼层
grf1973 发表于 2014-4-16 11:19
而且用公共变量的话,数组只在工作簿打开时一次定义。如果操作中信息库发生改变,数组不会同步改变的,这样 ...

     因为打开工作薄时,用于查询的工作表D2是空的,要查询必须先点击“查询”按钮,之后才能点“上一条/下一条”。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-3 20:22 , Processed in 0.319323 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表