Excel精英培训网

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

用VBA把冒泡排序每一次排序过程输出

[复制链接]
发表于 2017-11-15 09:46 | 显示全部楼层 |阅读模式

用VBA把冒泡排序每一次排序过程输出

例如:有6个数: 9,8,5,4,2,0  用冒泡排序,按从小到大排序

用VBA把每一次排序输出:


第一次: 8, 5,4,2,0,9

第二次................

第三次.................

把所有次数输出............


发表于 2017-11-16 19:14 | 显示全部楼层
本帖最后由 fjmxwrs 于 2017-11-16 19:37 编辑

每一个循环就是一次,记录下来即可
回复

使用道具 举报

发表于 2017-11-16 19:40 | 显示全部楼层
  1. Sub 按钮1_Click()
  2.     Dim arr, brr(), x%, y%, i%, j%, k
  3.     arr = Range("A2:A" & Range("A65536").End(xlUp).Row)
  4.     ReDim brr(0 To UBound(arr), 1 To 1)
  5.     For x = 1 To UBound(arr) - 1
  6.         For y = x + 1 To UBound(arr)
  7.             If arr(x, 1) > arr(y, 1) Then
  8.                 k = arr(x, 1)
  9.                 arr(x, 1) = arr(y, 1)
  10.                 arr(y, 1) = k
  11.             End If
  12.         Next y
  13.         i = i + 1
  14.         ReDim Preserve brr(0 To UBound(arr), 1 To i)
  15.         brr(0, i) = "第" & i & "次"
  16.         For j = 1 To UBound(arr)
  17.             brr(j, i) = arr(j, 1)
  18.         Next j
  19.     Next x
  20.     Range("B1").Resize(UBound(brr) + 1, i) = brr
  21. End Sub
复制代码

评分

参与人数 1 +9 收起 理由
laoau138 + 9 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-11-17 09:46 | 显示全部楼层


用VBA改写把冒泡排序每一次排序过程   按列输出单元格

Sub 冒泡排序()
Dim arr, temp, x, y, t, k
t = Timer
arr = Range("a2:a7")
For x = 1 To UBound(arr) - 1
   For y = x + 1 To UBound(arr) '只和当前数字下面的数进行比较
     If arr(x, 1) > arr(y, 1) Then '如果它大于它下面某一个数字
       temp = arr(x, 1)
       arr(x, 1) = arr(y, 1)
       arr(y, 1) = temp
     End If

   Next y
Next x
Range("b2").Resize(x) = ""
Range("b2").Resize(x) = arr
End Sub


用VBA改写把冒泡排序每一次排序过程   按列输出单元格

原来数据A2:A7    用冒泡排序从小到大排序最后结果输出B2:B7

如何用VBA改写这个冒泡排序把每一次排序从D列开始输出:


第一次: ...............

第二次................

第三次.................

把所有次数输出............


回复

使用道具 举报

发表于 2017-12-5 18:53 | 显示全部楼层
laoau138 发表于 2017-11-17 09:46
用VBA改写把冒泡排序每一次排序过程   按列输出单元格

Sub 冒泡排序()

改变输入位置到你要的位置即可
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-30 09:33 , Processed in 0.261799 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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