使用VBA代碼完成對單元格區域條件求和 - VBA語言專家

2020-12-16 VBA語言專家

分享成果,隨喜真能量。大家好,今日內容仍是和大家分享VBA編程中常用的簡單「積木」過程代碼,這些內容大多是取至我編寫的「VBA代碼解決方案」教程中內容。NO.168-NO.169內容是:

NO. 168:如何利用VBA代碼,求單元格區域A1:H10正數的和

NO. 169:如何利用VBA代碼,求最大值、最小值

VBA過程代碼168:如何利用VBA代碼,求單元格區域A1:H10正數的和

Sub mynz ()

Dim rng, rngs As Range

Dim d As Double

Set rngs = Range("A1:H10")

For Each rng In rngs

If rng > 0 Then d = d + rng

Next

MsgBox rngs.Address(0, 0) & "單元格正數的和為" & d

End Sub

代碼的解析說明:mynz過程利用VBA代碼在單元格區域Range("A1:H10")中進行了遍歷的操作,If rng > 0 Then d = d + rng 是指當這個單元格的值大於零時,那麼累加求和。即是求正數的和。

VBA過程代碼169:如何利用VBA代碼,求最大值、最小值

Sub mynz ()

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("50").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

代碼的解析說明:mynz過程在工作表單元格區域中查找最大、最小值,並將其所在的單元格底色分別設置為紅色和藍色。代碼中遍歷單元格區域,使用工作表Max、Min函數判斷單元格數值是否是所在區域的最大、最小值,如果是,將其所在的單元格底色設置為紅色或藍色,並保存其數值和數量。最後用消息框顯示最大、最小值數值和數量。

VBA是實現自己小型辦公自動化的有效手段,我根據自己20多年的VBA實際利用經驗,現推出了四部VBA教程,這些是我多年編程經驗的記錄,也是我「積木編程」思想的體現。每一講都是較大塊的「積木」,可以獨立的完成某些或者某類的過程,有需要的朋友可以聯絡(WeChat:NZ9668)分享。利用這些可以提高自己的編程效率。其一:「VBA代碼解決方案」PDF教程,是VBA中各個知識點的講解,覆蓋了絕大多數的知識點,是初學及中級以下人員必備;其二「VBA資料庫解決方案」PDF教程,資料庫是數據處理的利器,對於中級人員應該掌握這個內容了。其三「VBA數組與字典解決方案」PDF教程,講解VBA的精華----字典,是我們打開思路,提高代碼水平的必備。其四「VBA代碼解決方案」視頻教程。目前正在錄製,「每天20分鐘,半年精進VBA」,越早參與,回饋越多。現在錄製到第二冊的95講。

相關焦點

  • 根據顏色求和與計數,好難啊,使用vba自定義函數即可輕鬆搞定
    Hello,今天有粉絲遇到這樣的一個問題,就是老闆給他很多帶有顏色的表格,想讓他根據顏色求和以及計數,他一個一個做了很久也沒做出來,問我有沒有什麼簡單的方法,當然有了,我們覺得最快捷的方法就是使用vba自定義函數來計算,操作也非常的簡單,下面就讓我們來一起操作下吧
  • 3種根據單元格填充色求和與計數方法,再也不用一個一個的計算了
    Hello,大家好,今天跟大家分享下我們如何根據單元格的顏色進行求和與計數,很多人都是一個一個計算的,非常麻煩,其實這都是源於我們數據整理的時候太過隨意,如果在數據整理的的時候就能將數據分類獨立的羅列出來,後期直接求和或者計數即可,根據單元格顏色求和與計數各跟大家分享3種方法一、查找法
  • 如何替換單元格內容,vba代碼幫你一步解決
    實際上這個功能是查找B3單元格內容,然後把和B3姓名相同的全更改為文本框內容。按鈕代碼:Private Sub ChangeName()Dim s As WorksheetSet s = ThisWorkbook.ActiveSheetDim r As Range, ro As Long, Rchr As String, xStr As StringxStr = vba.Trim(Me.TextBox1.Value)'文本框內容Set r = s.Range
  • Excel VBA 中是如何處理單元格呢?複製或者移動,你真的了解她嗎
    >d、刪除多餘空行代碼應用複製單元格區域我們還是通過錄製宏來說明我們操作的複製和粘貼代碼的應用吧!就一句複製粘貼其實不過如此,我們需要注意的是,這個複製是可以操作很大的區域,然後後面的就是我們要粘貼的放置的第一個左上方的單元格。相信你看了,你肯定會使用複製和粘貼了,當然上面的代碼只能在我們當前活動的工作表中執行,不能跨工作表,如果我們要跨工作表的話,就需要加上工作表的名稱來成。
  • Excel vba獲取當前當前單元格的行號和列號
    Excel vba獲取當前當前單元格的行號和列號在Excel單元格中,我們在編寫語句代碼的時候需要獲取指定單元格的行號和列號如圖,將指定單元格的行號和列號分別填入表中>在vbe窗口中,添加以下代碼Sub 單元格行列號() Selection.Offset(1, 0) = Selection.Row Selection.Offset(1, 2) = Selection.Column End Sub
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • vba第二十七課
    vba第二十七課使用區域的統計usedrange返回一個range屬性,該對象表示指定工作表上所使用的區域例:Sub 使用區域()Sheet(1).usedrange.selectEnd sub注釋:此段代碼表示的意思是選中單元格存在數據的區域
  • vba第十八課
    vba第十八課調用工作表函數在vba中我經常會對工作表的數據進行一些運算,雖然通過代碼進行循環或判斷也可以完成,但是通vba調用函數可以更簡單更直接進行運算提高代碼的運行效率,比如countif、sumif等需要進行判斷統計和求和的運算。
  • 如何將Excel數據表單元格保存為數組,VBA數組進階應用
    如:Dim NewArrrNewArr=Thisworkbook.Activesheet.Range("A1:A10").CurrenRegion通過以上代碼,創建了一個數組NewArr,包含了數據表中A1:A10的數據內容。當然,vba並不是這麼解釋的,但可以這麼理解。
  • VBA代碼解決方案第49講:VBA代碼中工作表函數SUM的利用方法 - VBA...
    對多個單元格求和,是統計工作中非常普遍的工作,在之前的函數講解過程中,我下了很大的氣力來講解SUM函數及其衍生的函數,在數組的講解中也講了此函數在數組中的利用,可以說SUM函數在統計工作中起著舉足輕重的作用,如果把這個函數利用好了,對自己的工作是非常方便的,今日我在VBA中就此函數的利用及規律再次加以講解。
  • Excel VBA入門教程 1.10 單元格排序示例
    舉個排序的例子,要對A1:A20的單元格區域進行排序,區域內的內容為1-100的隨機整數, 規則是大於50的倒序排列,小於50的正序排列。
  • VBA代碼大全010:用vba遍歷文件夾及其子文件夾內的文件
    vba老手都知道,vba寫多了,其實都是在做循環。循環處理多個單元格的內容,循環處理多個工作表的內容,循環處理多個工作簿的內容。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    輸入條件,輸出結果的過程在 Vba 進行。可以隨意修改匯總方式(求和、平均等)與匯總欄位。可以隨意修改匯總欄位和過濾條件。所有的修改都無需改動代碼。如下圖:點一下上圖紅框部分,即可註冊你的 py 文件中的自定義方法到 vba 中。他大致原理是讀取 py 文件中的方法,然後相應在 vba 中生成名字和參數一樣的 vba 方法。
  • EXCEL之VBA入門基礎-單元格及區域的選擇,使用變量選擇區域方法
    ,所有的單元格集合在一起用cells表示,所以cells也代表就代所有的單元格,如果要指定某一個單元格只需要在cells後面指定行和列就可以,如:cells(1,1),就代表第一行第一列交叉的單元格A1,後面不指定單元格就代表所有單元格,如cells.select就是選擇當前工作表的所有單元格,工作表除了是由單元格組成,同時也是由行或列組成,因此選擇單元格或行或列還有都可以有多種,一行或一列也是一個區域
  • 微軟太壞了,這類函數居然被隱藏了,用它快速搞定根據顏色求和
    Hello,大家好,今天跟大家分享下我們如何根據顏色對單元格的值進行計數求和,根據顏色對單元格進行求和以及計數的方法很多,今天主要跟大家分享我們如何使用公式來實現這樣的操作使用公式根據單元格的顏色進行求和計數我們需要用到宏表函數
  • vba第二十五課
    vba第二十五課單元格區域Range:代表某一單元格、某一行、某一列、某一選定區域寫法:range(「文件型單元格地址」),因為是文本型所以要加上雙引號,如果引用的區域有變量,則變量不能用雙引號,只能用連接符」&」,如Range("a
  • VBA學習筆記 1-1
    alt+11調出vba窗口ctrl+r 調出工程資源管理器vba續行符_清楚活動單元格內容:activecell.clearcontents顯示工作表名稱:msgbox activesheet.name工作簿名稱和路徑msgbox activeworkbok.fullname填充單個值selection.value=12選擇單元格:range("A1").select
  • vba第三十一課
    vba第三十一課合併單元格例:Sub 合併單元格()Application.DisplayAlerts = FalseDim a,bWith Sheets(1)a = .[a100].End(xlUp).Row獲取到最後一行的行號3、For b = a To 2 Step -1從最後一行開始往上合併並且到第二行就停止,原因是因為從上往下合併會不在功,假設a2與a3相等進行合併,當程序運行到a4時,a3已為空值(因為合併只保留第一個單元格的值),所以a3等於空,而a4的值為一班,不能合併,而由下往上合併不存在這個問題,所以一般合併單元格都是由下往上合併
  • Excel VBA UsedRange屬性獲取使用的單元格區域
    UsedRange屬性獲取使用的單元格區域需要Excel原始碼的請點擊關注,私信回覆:布魯斯 示例代碼:#001 Public Sub 示例() >#002 ActiveSheet.UsedRange.Select #003 '使用這代碼必須是在當前工作表為Sheet1運行#004 Sheets("Sheet1").UsedRange.Select
  • EXCEL表格詳解vlookup第五彈-VBA自己寫myLookup函數
    我們在前四彈詳細介紹了vlookup函數,以及vlookup函數實現不了後,使用index為主函數加match,small,if等函數的組合拳來實現複雜的條件查找。下面我就手把手地帶大家寫一個自己的函數myLookup() ,使用這一個函數來實現前四彈的所有功能。第一步:打開Excel的vba編輯器,菜單欄找到 「開發工具」 --> 「Visual Basic」,或者按 Alt + F11,打開 VBA 編輯器,開始我們的代碼之旅。如下圖。