朋友們好,今日講VBA代碼解決方案的第50講:VBA中求最大值、最小值的.和上節的內容一致,在VBA中我們可以利用的函數不如EXCEL中多,但是,我們可以藉助於EXCEL的函數,來解決我們面臨的問題。在VBA中雖然沒有內置的函數可以進行最大、最小值的查找,但仍可以藉助工作表Max、Min函數可以快速地在工作表區域中查找最大、最小值。
在本節的知識點中需要注意:
1 For Each 循環,這裡就不再講解,有不清楚的可以看看我上節的文章。
2 WorksheetFunction 表示應用的是工作表函數
3 MsgBox 這裡是彈出對話框,告訴我們計算機算出的結果。
4 rng.Interior.ColorIndex 是單元格顏色的設置
這裡再次看看一下EXCEL中各個顏色的值
下面我們看看代碼:
Sub Myseeks()
Dim rng As Range
Dim myRng As Range
Dim k1 As Integer, k2 As Integer
Dim mymax As Double, mymin As Double
Set myRng = Sheets("Sheet3").Range("a1:f20")
For Each rng In myRng
If rng.Value = WorksheetFunction.Max(myRng) Then
rng.Interior.ColorIndex = 3
k1 = k1 + 1
mymax = rng.Value
ElseIf rng.Value = WorksheetFunction.Min(myRng) Then
rng.Interior.ColorIndex = 5
k2 = k2 + 1
mymin = rng.Value
Else
rng.Interior.ColorIndex = 0
End If
Next
MsgBox "最大值是:" & mymax & "共有 " & k1 & "個" _
& Chr(13) & "最小值是:" & mymin & "共有 " & k2 & "個"
End Sub代碼解析:
Myseeks過程在工作表單元格區域中查找最大、最小值,並將其所在的單元格底色分別設置為紅色和藍色。
第2行到第5行代碼聲明變量類型。
第6行代碼使用關鍵字Set將單元格引用賦給變量myRng。
第7行到第19行代碼遍歷單元格區域,使用工作表Max、Min函數判斷單元格數值是否是所在區域的最大、最小值,如果是,將其所在的單元格底色設置為紅色或藍色,並保存其數值和數量。
第20、21行代碼使用消息框顯示最大、最小值數值和數量。
運行Myseeks過程後將工作表區域最大、最小值所在的單元格的底色設置為紅色或藍色並用消息框顯示其數值和數量.
下面看代碼實測,代碼截圖:
運行截圖:
今日內容回向:
1 如何在VBA中獲取最大最小值?
2 如何計算最大最小值的個數?