氣泡跑需是經常用到的一種資料排列方法,本節將介紹如何利用VBA程式碼來實現其功能。其中,可檢視示例進行學習程式碼的過程。首先,對氣泡跑需有一個簡單的瞭解。氣泡跑需可以理
2021-11-05 00:26:02
氣泡跑需是經常用到的一種資料排列方法,本節將介紹如何利用VBA程式碼來實現其功能。
其中,可檢視示例進行學習程式碼的過程。
首先,對氣泡跑需有一個簡單的瞭解。
氣泡跑需可以理解成,水裡的氣泡向上移動,最終排序的結果就是,最大的資料排在最後,最小的資料排在第一位,也就是從小到大排列。
直觀點,可以看如下動圖。
下面為示例,對一列無序資料進行排列,最後實現從小到大的順序。
工作當中的應用實際上也有很多,各類資料排序。
下面重點看一下程式碼:
Private Sub MaoPao()
'氣泡跑需
Dim xArr(), x As Variant
Dim r As Range, ri As Integer
Set r = Range("B3:B11") '定義排序範圍
ReDim xArr(r.Count - 1) '定義存放陣列
For ri = 1 To r.Count '陣列賦值
xArr(ri - 1) = r.Item(ri).Value
Next ri
Dim i As Integer, j As Integer
'外迴圈排序
For i = UBound(xArr) - 1 To 0 Step -1
For j = 0 To i '二層迴圈排序
If xArr(j) >= xArr(j + 1) Then '如果前一個大於等於後一個
x = xArr(j + 1) '交換位置
xArr(j + 1) = xArr(j)
xArr(j) = x
End If
Next j
Next i
'單元格賦值
For i = 0 To UBound(xArr)
r.Item(i + 1).Offset(0, 1).Value = xArr(i)
Next i
Set r = Nothing
Erase xArr
End Sub
主要程式碼做了註釋,可以對照學習。
重點是整個排序的邏輯流程要進行梳理。
程式碼中應用了兩層巢狀迴圈,第一層為對所有資料進行遍歷。第二層為排序遞減,也就是說每進行一次排序分別把最大的資料向後儲存,下一次就不對此資料進行比較了。
如果,實在弄不明白,可以直接拿程式碼應用,只需要修改一下」定義排序範圍「和儲存位置,就可以使用了。
歡迎關注、收藏
---END---
相關文章
氣泡跑需是經常用到的一種資料排列方法,本節將介紹如何利用VBA程式碼來實現其功能。其中,可檢視示例進行學習程式碼的過程。首先,對氣泡跑需有一個簡單的瞭解。氣泡跑需可以理
2021-11-05 00:26:02
今年京東11.11開啟晚8點模式,不用熬夜搶購的巴適消費體驗深得消費者的支援與點贊。大眾對於品質生活的需求,推動著家電消費的激增。京東家電主站強勢爆發,11.11開門紅成交額超
2021-11-05 00:25:45
身為創作者,最希望聽到的誇獎莫過於:「隔著螢幕都能感受到滿滿的創作力」。而要將情緒與靈感生動表達,作品誕生時就要經歷重重錘煉,用來呈現創作的螢幕更是不允許有絲毫短板。
2021-11-05 00:24:48
榮耀智慧生活在開門紅活動中,多款產品取得了不錯的戰績,為消費者帶去了眾多價格良心的好產品。在筆記本領域,榮耀筆記本包攬京東11月1日輕薄本單品銷量冠亞軍。 與此同時,榮
2021-11-05 00:24:08
在日常工作中經常會使用excel,有時表格資料列很多,左右拖動滾動條進行查詢資料列,比較麻煩,有沒有更簡單的方法呢?1、以下圖中的表格資料為例,表格資料列很多,左右滾動條查詢列就比
2021-11-05 00:23:45
寫在開頭拿到12代處理器的時間很短,折騰的時間也非常有限。另外,所有的測試進行時平臺BIOS也非正式版本(甚至可能有些軟體可能都還沒更新對新平臺的支援),而且非極限/專業玩家測
2021-11-05 00:20:40