ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ctp_119

[原创] 英语单词助记器!!!------41楼更新

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-8-20 00:55 | 显示全部楼层
本帖最后由 win2009 于 2012-8-20 00:56 编辑

错误多,f 列数据出错,随机数不对

    k1 = 999
    k2 = 0
         c.Value = Int(Rnd() * (k1 - k2 + 1)) + k2

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 07:15 | 显示全部楼层
xsy我可以很好 发表于 2012-8-19 23:12
就是在一个文本框里面输入英文或者中文就可以在列表框里面显示模糊查询后的结果

好的,这个功能没有问题,后续一定补上,谢谢你提的好建议。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 07:18 | 显示全部楼层
win2009 发表于 2012-8-20 00:55
错误多,f 列数据出错,随机数不对

    k1 = 999

你发现的比我更新的还快,谢谢你对我弄的东西这么认真,好的,现在就补上。本来想有些大的动作,一起补上的。你这么用心,我只好现在就补上。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 07:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本次更新,做了一些修改,第一,在随机过程中,添加了一条语句,使其真正随机。第二,在命令按钮三(即下一条)bug做了修改。杜绝错误的发生。。。在此非常感谢win2009。
后面还会更新,,,希望大家多给我意见和建议。。。

英语单词助记器.rar

34.04 KB, 下载次数: 38

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 07:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
AVEL 发表于 2012-8-18 17:25
随机排序的可以参考 香川群子 的帖子
搜索她的主题就好。

AV监察,你好,通过你的推荐,我去学习了,并试着用上,发现还没有我原来的快,我测试了10000多条数据。发现速度相差很大。
  1. Option Base 1
  2. Sub 随机()
  3. t = Timer
  4. Randomize
  5. s = Sheets("单词表").[b65536].End(xlUp).Row
  6. Set d = CreateObject("Scripting.Dictionary")
  7. Dim i As Long
  8. Do
  9.   i = Int((s * Rnd) + 1)
  10.   d(i) = ""
  11.   If d.Count = s Then Exit Do
  12. Loop
  13. Sheets("单词表").Range("A1:A" & s) = Application.WorksheetFunction.Transpose(d.Keys)
  14. t = Timer - t
  15. 'MsgBox "耗时" & t
  16. End Sub
  17. Sub shuzusj()
  18. Dim arr()
  19. Dim i As Long
  20. Dim r As Long, linshi As Long
  21. t = Timer
  22. Randomize
  23. s = Sheets("单词表").[b65536].End(xlUp).Row
  24. ReDim arr(s)
  25. For j = 1 To s
  26.     arr(j) = j
  27. Next j
  28. For i = 1 To s
  29.     r = Int(Rnd() * (s - i + 1) + i)
  30.     linshi = arr(r)
  31.     arr(r) = arr(i)
  32.     arr(i) = linshi
  33. Next
  34. Sheets("单词表").Range("A1:A" & s) = Application.WorksheetFunction.Transpose(arr)
  35. t = Timer - t
  36. 'MsgBox "耗时" & t
  37. End Sub
复制代码
香川群子是在既有数组的条件下打乱取随机数,我是在没有的情况下自动生成一个区间范围内的随机数。不过我还是长进了,,,呵呵,谢谢!!

TA的精华主题

TA的得分主题

发表于 2012-8-20 08:11 | 显示全部楼层
ctp_119 发表于 2012-8-20 07:36
AV监察,你好,通过你的推荐,我去学习了,并试着用上,发现还没有我原来的快,我测试了10000多条数据。发 ...

我A1:A10000 随机数值填充 然后测试结果跟你说的不一样啊
明显是后者的速度快很多。

TA的精华主题

TA的得分主题

发表于 2012-8-20 08:12 | 显示全部楼层
写的真不错。敢问是哪个属性让用户输入的时候label17进入隐藏状态的?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 08:15 | 显示全部楼层
AVEL 发表于 2012-8-20 08:11
我A1:A10000 随机数值填充 然后测试结果跟你说的不一样啊
明显是后者的速度快很多。

第一,是用我上面的程序测试的吗?
第二,我分析了一下原因,关键是
25.For j = 1 To s
26.    arr(j) = j
27.Next j
给数组赋值耽误了很多时间。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-20 08:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
eddie_cooler 发表于 2012-8-20 08:12
写的真不错。敢问是哪个属性让用户输入的时候label17进入隐藏状态的?

谢谢你的关注,不是那个属性,是过程控制的,我用了文本框的改变事件来控制的,本想用文本框的按键事件的,试了一下没有达到我预期的效果就改了事件了,,呵呵,,,我编程都是摸着石头过河的。。。水平有限!!!

TA的精华主题

TA的得分主题

发表于 2012-8-20 08:22 | 显示全部楼层
ctp_119 发表于 2012-8-20 08:15
第一,是用我上面的程序测试的吗?
第二,我分析了一下原因,关键是
25.For j = 1 To s

用你写的测试的
应该不是循环耗时间。
我这里测试是后者速度快。
先睡觉了,明天继续。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-13 06:38 , Processed in 0.035827 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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