首頁 > 科技

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---


IT145.com E-mail:sddin#qq.com