Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1684|回复: 3

[已解决]求助

[复制链接]
发表于 2010-10-7 15:18 | 显示全部楼层 |阅读模式

SiGsyYaO.rar (25.09 KB, 下载次数: 0)

 楼主| 发表于 2010-10-7 16:27 | 显示全部楼层
回复

使用道具 举报

发表于 2010-10-7 16:52 | 显示全部楼层    本楼为最佳答案   

Option Base 1
Sub gs()
    Randomize
    Dim i%, arr()
    r_end = Range("b65536").End(xlUp).Row
    Range("d6:d" & r_end).ClearContents
    r_end = r_end - 5
    ReDim arr(r_end, 1) '重定义数组大小。
    For i = 1 To r_end
        arr(i, 1) = Application.Ceiling((Rnd * (Range("h2").Value - Range("g2").Value) + Range("g2").Value), 1)
    Next i
    [d6].Resize(r_end, 1).Value = arr
End Sub
回复

使用道具 举报

发表于 2010-10-7 19:10 | 显示全部楼层

补充一点:

应该在循环语句外将两个Range的值赋值给一个变量。

在循环语句中直接调用该变量,比频繁的操作单元格对象要快的多,当循环量大时他们的区别就会非常明显。

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-6-14 06:11 , Processed in 0.319094 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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