VBA代碼解決方案第50講:VBA中如何求最大值、最小值

2020-12-06 VBA語言專家

朋友們好,今日講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 如何計算最大最小值的個數?

相關焦點

  • VBA代碼解決方案第49講:VBA代碼中工作表函數SUM的利用方法 - VBA...
    大家好,我們今日繼續講解VBA代碼解決方案的第49講內容(註:在整理之前的VBA系列文章中合併了一些文章,重新成集排序為第49講,所以從這篇文章開始以新的排序計算):VBA中SUM函數的利用方法。對多個單元格求和,是統計工作中非常普遍的工作,在之前的函數講解過程中,我下了很大的氣力來講解SUM函數及其衍生的函數,在數組的講解中也講了此函數在數組中的利用,可以說SUM函數在統計工作中起著舉足輕重的作用,如果把這個函數利用好了,對自己的工作是非常方便的,今日我在VBA中就此函數的利用及規律再次加以講解。
  • VBA代碼解決方案第55講:VBA代碼中,如何判斷是否為數值
    大家好,我們今日繼續講解VBA代碼解決方案的第55講內容:VBA代碼中,如何判斷是否為數值。本節的利用價值非常大,在INPUTBOX中,在窗口的控制項中,這種判斷會隨處可見,這裡需要大家注意點是在VBA中和EXCEL中判斷數值的函數是不一樣的,大家是否還記得在EXCEL函數中利用的函數嗎?
  • 工作中為什麼有必要學點VBA
    從office97開始,VBA作為MS的標準內置配置,彌補了excel內在的基本函數不足以支持的複雜計算,提供了一種相對輕量級的、所見即所得的解決方案,濤哥在21世紀初因內部工作需要(統計代碼行數記工作量)第一次接觸了VBA,並在以後的工作中多次出色的完成相關任務,甚至給濤嫂編的幾個小程序大大提升了她們的工作效率,還受到了時任行長的讚許,現在想來還歷歷在目。
  • 如何將Excel數據表單元格保存為數組,VBA數組進階應用
    No.1在vba編程中,數組應用是一個十分有用的方法。如何把數據表作為數組進行處理,是編程過程中的一個重要技能。學會之後,將大大提高編程技術,也將使數據處理的過程變得更加流暢。No.2上圖為例,把表格內容作為數組值進行保存,然後通過流程編碼對成績進行一個比較判斷,最終得出一個成績等級的判定。
  • VBA編程如何輸入輸出字符集,兩函數要掌握
    字符函數Chr():返回一個字符串,其中包含與指定的字符代碼關聯的字符。如何輸入字符,在vba編程過程中是一個基本常識。本節主要介紹一下,字符集對應的數值,以及如何輸入字符。很顯然,函數Chr即可輸出相應數值的字符。
  • Excel求最大值最小值與用紅色標出最大值用藍色最小值所在位置
    在 Excel 中,可以取某一行或某一列及選中區域的最大值或最小值;在不帶條件的情況下,直接取最大值或最小值;在帶條件的情況下,只取滿足條件的最大值或最小值。無論是取最大值還是取最小值,除選擇「自動求和」中的最大值與最小值選項外,還可以用快捷鍵。另外,除把最大值或最不值取出外,還可以用顏色標出最大值或最小值所在位置。
  • Excel去掉一個最大值(最高分)和一個最小值(最低分)求平均值
    今天我們來介紹Excel計算數字單元格個數函數COUNT,並結合前面文章中介紹的函數MAX、MIN,來實現去掉一個最大值(最高分)和一個最小值(最低分)求平均值。如下面這些例子,公式及結果如圖中所示。2.去掉一個最大值(最高分)和一個最小值(最低分)求平均值如下面這個例子,公式可以寫為=(SUM(B2:B9)-MAX(B2:B9)-MIN(B2:B9))/(COUNT(B2:B9)-2),意思是(總和-最大值-最小值)/(總個數-2),結果如圖中所示。
  • VBA數組與字典解決方案第32講:數組的拆分和維數轉換
    大家好,我們今日繼續VBA數組與字典解決方案的講解,今日講解第32講,數組的拆分和維數轉換:一 數組的拆分1. 用Index拆分數組數組的拆分在VBA中是一個難題,如果是按行拆分數組,除了用循環外也只能借用API函數完成了。幸好我們可以借用工作表函數index達到按列拆分數組。
  • EXCEL中如何動態顯示圖表中的最大值和最小值?
    今天來談一下圖表中最大值最小值的如何動態顯示一般我們可以通過手動尋找最大和最小,然後單獨著色以區別但是這種,後續數據一變動,又需要手動調整>今天就是要分享如何自動更新的問題動畫演示效果詳細製作教程1、條件最大值和最小值輔助列> 最大值:=IF(B2=MAX($B$2:$B$13),B2,NA())
  • 從認識VBA,到理解VBA(VBA學習方案系列講座之十二)
    3 初級階段的學習提高在我教程的推出順序中,我首先完成的是第一套《VBA代碼解決方案》的教程,這套教程非常重要,是初學者提高的一個關鍵過程。第一套《VBA代碼解決方案》修訂版,共三冊147講,這套教程覆蓋了VBA範圍內大多數知識點,是初級和中級人員必備資料;這套教程目前是第二版修訂,已經適合於32位和64位兩種OFFICE系統。同時這套教程也推出了視頻就是我的第四視頻教程,是以PDF教程為藍本的視頻講解,約16G,每講時長10-20分鐘。為什麼這套教程要推出兩個版本呢?
  • With語句,提高VBA代碼運行速度的方案
    今日內容是和大家分享VBA編程中常用的 「積木」過程代碼,這些內容大多是取至我編寫的「VBA代碼解決方案」教程中內容。今日分享的是NO.205-NO.205,內容是:NO. 205:在VBA代碼中使用With語句來引用工作表對象或許更快的代碼運行速度VBA過程代碼205:在VBA代碼中使用With語句來引用工作表對象或許更快的代碼運行速度Sub mynz ()
  • 初中數學|動點問題「12」,求△ABE的面積最大值和最小值
    D是圓上的一個動點,隨著D的移動,問△ABE的面積最大值和最小值分別是多少?當它取最小值時,面積也最小,當它取最大值時,面積也最大。當AD和圓的下面相切時,BE有最大值。相應的,當AD和圓的上面相切時,BE有最小值。接下來的問題就是怎麼樣求BE,因為OB=2,所以只需要求OE的長就行了。
  • 高一數學第一次月考考點之函數最大值和最小值詳解
    這次課程我們來為大家講一下月考中必考的內容之函數的最大值和最小值的求解技巧,教你輕鬆應對第一次的月考。基本概念最大值:經常表示為max,最大值表示函數在給定區間內的最大的值,即任意的函數值都要小於這個函數值。
  • VB\VBA\VBS中的if語句以及多重and和or條件用法
    本例所舉例子均在vba代碼窗口中測試過需要的話可以直接複製代碼測試Sub If語句用法()a = Int(Rnd() * 51 + 50) '隨機生成50-100的整數MsgBoxThen MsgBox "不合格"End Sub單條if語句是不用寫end if的,但then後面的語句需要寫在同一行,如果then後面要運行多個語句可以用冒號(:)連接,如Sub if函數用法()a = Int(Rnd() * 51 + 50
  • Excel最大值函數MAX和最小值函數MIN
    在數學中,我們用max表示最大值,用min表示最小值。今天我們就來介紹Excel中的最大值函數MAX和最小值函數MIN。如求3/4和4/5中較大的值,我們可以寫為=MAX(3/4,4/5),則返回的結果為0.8。最小值函數MIN格式為=MIN(數值1,數值2,……)數值參數可以是單元格、數字或公式。
  • 向量在三角函數中運用,求bc最小值?不是最大值!要這樣轉化才行
    01原題再現在△ABC中,a,b,c分別為內角A,B,C的對邊,且(cosA)^2+cosA·cos(C-B)=sinB·sinC。⑴求角A;⑵若△ABC的內切圓面積為π,當向量AB·向量AC取最小值時,求△ABC的面積。
  • Excel表格實用技巧11、如何快速從數據中找出最大值或最小值
    利用條件格式的項目選取規則找出最大值或最小值操作示例1、從下圖數據中找出最大值:選中所有數據,依次點擊開始菜單下的【條件格式】——【項目選取規則】——【值最大的10項】,在打開的窗體中將「10」修改為「1」後點擊【確定】,下圖中最大值「420」已被高亮顯示;2、從下圖數據中找出最小值:選中所有數據,依次點擊開始菜單下的【條件格式】——【項目選取規則】——【值最小的10項】,在打開的窗體中將「10」修改為「1」後點擊【確定】,下圖中最大值
  • 如何突出折線圖中的最大值最小值?試試這個方法,僅需3步搞定
    Hello,大家好,今天跟大家分享下我們如何在折線圖中突出最大值和最小值。這個的操作其實非常的簡單,最主要的還是使用if函數進行判斷最大值或者最小值以及將#N/A作為佔位符使用。下面就讓我們來一起操作下一、構建輔助區域首先我們構建兩個輔助區域在第一個輔助區域中輸入公式=IF(B2=MAX($B$2:$B$13),B2,NA())在這我們是使用if函數來判斷B2這個值是不是銷量這個數據區域的最大值
  • VBA代碼中數組的拆分與合併的實現
    在今後更加嚴峻的存量殘殺世界中,為自己的生存進行知識的儲備,特別是新知識的儲備。為後疫情時代做的必要準備。什麼是存量殘殺?簡單而言,在取代OFFICE新的辦公軟體沒有到來之前,誰能把應用做到最為先進,誰就是王者。其中登峰至極的技能非VBA莫屬!今日繼續和大家分享VBA編程中常用的常用「積木」過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。