打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel | 如何将某一列的顺序随机打乱,让其没有规律 | 打乱顺序,随机处理数据
本帖最后由 yjzstar 于 2012-5-5 14:20 编辑

Q:在一个工作表中的某列中,以B列为例,在该列中有若干个非空单元格,而且这些非空值的每个单元格之间不是连续的。现在想对这些非空单元格里的内容随便排序,即打乱原来的顺序
说明:如果某单元格原来是空的,新排列后还要是空的,原来是非空单元格,新的排列后也是非空值单元格,只是单元格里的内容改变了而已。而且仅仅是要求B列随便排序,不要影响其它列的内容发生改变。

A:利用VBA中的rnd()函数,外加一个循环语句,便可以轻松的实现以上过程!
  1. Sub ssd()
  2.     Dim n As Integer, n1 As Integer, m As Integer
  3.     Dim s As String
  4.     Application.ScreenUpdating = False
  5.     m = Cells(Rows.Count, 1).End(xlUp).Row
  6.     For i = 1 To 500
  7.         n = Rnd() * m
  8.         n1 = Rnd() * m
  9.         If n <> 0 And n1 <> 0 Then
  10.         If Range('B' & n) <> '' And Range('B' & n1) <> '' Then
  11.             s = Range('B' & n).Value
  12.             Range('B' & n) = Range('B' & n1)
  13.             Range('B' & n1).Value = s
  14.         End If
  15.         End If
  16.     Next
  17.     Application.ScreenUpdating =true
  18. End Sub
如果数据量大,以上过程可以用数组实现,以提高运行速度。另外可以根据自己的需要进行扩展,可以对某一区域进行随机处理!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Excel统计函数COUNTIF的用法及实例
问答009-如何快速合并相同单元格的内容
VBA随机抽取
Excel VBA(WPS Office下)安装及入门操作
VBA简单入门06:变量那些要注意的问题
Excel从工资表到工资条的制作方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服