如何將Excel數據表單元格保存為數組,VBA數組進階應用

2021-01-11 江覓易見

No.1

在vba編程中,數組應用是一個十分有用的方法。

如何把數據表作為數組進行處理,是編程過程中的一個重要技能。

學會之後,將大大提高編程技術,也將使數據處理的過程變得更加流暢。

No.2

上圖為例,把表格內容作為數組值進行保存,然後通過流程編碼對成績進行一個比較判斷,最終得出一個成績等級的判定。

也就是通過成績的多少來確定一個等級區間。

同樣的判斷在不同的表格裡應用也比較多。

如一個銷售表裡面判斷某一個人或一類商品的銷量,如果在某一個區間就做出爆款判定,如果銷量小於某一個值,說明此商品應該下架。

同類型數據表格,我們用數組來做處理,效果會很好。

No.3

要對表格進行一個數組保存,我們用到上圖的一個屬性CurrentArray,此屬性是Range對象裡的一個屬性。

功能是將表格內容返回到一個數組裡。

如:

Dim NewArrr

NewArr=Thisworkbook.Activesheet.Range("A1:A10").CurrenRegion

通過以上代碼,創建了一個數組NewArr,包含了數據表中A1:A10的數據內容。

當然,vba並不是這麼解釋的,但可以這麼理解。

No.4

實際上表格轉換為數組,只要將Range對象對數組直接進行賦值即可,也就是把表格單元格直接賦值給數組。

如下例子:

Dim rs As RangeSet rs = s.Range("B2:B5")Dim arar = rsMsgBox UBound(ar)

執行之後,ar就是一個包含B2:B5單元格值的數組。

ar(1,1)ar(2,1)ar(3,1)ar(4,1)ar(5,1)

注意:

這個數組不是一維數組,它是一個二維數組。

如果要訪問數組中的第一個值,要用ar(1,1)來進行訪問,最後一個值用ar(4,1)訪問。

No.5

可以看到上圖為代碼示例,是這個例子的全部代碼,實際應用要對應著表格進行。

下面看下代碼的具體內容:

Private Sub GetDengji()Dim s As WorksheetSet s = ThisWorkbook.ActiveSheetDim r As RangeSet r = s.Range("B2")Dim ArrMa As VariantArrMa = r.CurrentRegion '數組賦值Dim ui As Long, li As Long, i As Long, j As Long, x As Longli = r.CurrentRegion.Rows.Count '行數ui = r.CurrentRegion.Columns.Count '列數x = r.CurrentRegion.Count '數組總數Dim DJ As VariantDJ = Array("優秀", "優良", "不及格")For i = 1 To li '循環行For j = 1 To ui '循環列If j = 5 And VBA.Len(ArrMa(i, j)) <> 0 Then '條件判斷第5列If VBA.IsNumeric(ArrMa(i, j)) And ArrMa(i, j) >= 80 Then s.Cells(i, j + 1).Value = DJ(0)If VBA.IsNumeric(ArrMa(i, j)) And ArrMa(i, j) >= 60 And ArrMa(i, j) <= 79 Then s.Cells(i, j + 1).Value = DJ(1)If VBA.IsNumeric(ArrMa(i, j)) And ArrMa(i, j) <= 59 Then s.Cells(i, j + 1).Value = DJ(2)End IfNext jNext iEnd Sub

應用數組編碼可以極大提高程序的運行效率,當然了,如果是初級編程人員,對於數組的學習還是有不小困難。

首先應用對數組概念進行一個全面學習。

然後,再著手編輯一些小型程序代碼,來驗證對數組的理解。

無論哪種程式語言,都將應用到數組,通過對數組的學習,我們會引申出另一個學習內容。

字典。

沒錯字典是整個編程中,相對獨特的一種類型。

由於它的特殊性,在應用過程中也是相當出色。

不得不學。

歡迎關注、收藏、轉發

相關焦點

  • 利用VBA代碼將文本轉換為數組函數
    簡單而言,在取代OFFICE新的辦公軟體沒有到來之前,誰能把應用做到最為先進,誰就是王者。其中登峰至極的技能非VBA莫屬!看全球股市震蕩,市場信心不足,歐美股市熔斷頻發,後疫情時代將終將演繹一場戰勝蕭條的戰役。無論怎樣,我們一定要堅信,疫情終將會過去,曙光一定會到來。
  • Excel VBA Array數組Transpose方法給列單元格區域賦值
    需要Excel原始碼的網友請點擊關注和轉發,然後直接私信回覆:原始碼因為一維數組是以行來分配地址,如果把一維數組的值給單元格列賦值,則需要用Transpose方法進行行列轉換。#002 Dim arr As Variant #003 Range("A1:E10") = "" '清空A1:E5單元格區域內容
  • 3種根據單元格填充色求和與計數方法,再也不用一個一個的計算了
    Hello,大家好,今天跟大家分享下我們如何根據單元格的顏色進行求和與計數,很多人都是一個一個計算的,非常麻煩,其實這都是源於我們數據整理的時候太過隨意,如果在數據整理的的時候就能將數據分類獨立的羅列出來,後期直接求和或者計數即可,根據單元格顏色求和與計數各跟大家分享3種方法一、查找法
  • VBA數組數據回填工作表
    第三節 VBA數組數據回填工作表在前兩節我們講了如何將工作表中的數據讀到數組中,這種操作的實質其實是:將數據預存到內存中,然後在內存中調取數據再進行下一步操作,這樣可以節約反覆提取數據的時間。當我們在內存中將數據計算完成後,需要將結果數組回填給工作表,又要注意哪些問題呢?對於工作表而言,可以回填的是數組可以是一維或二維的。
  • EXCEL中數組的應用專題之一:數組公式是如何輸入的
    在EXCEL的應用中,數組是經常用到的一個知識點,在實際工作中,巧妙的利用數組可以在實際的工作中可以得心應手,配合必要的函數和公式,可以讓你的工作變得簡單高效。數組公式就是可以同時進行多重計算並返回一種或多種結果的公式。比一般的公式要複雜些,理解上要和普通的公式加以區別。必要時要藉助VBA的思想來來考慮問題,因為數組公式的應用在很多的時候和VBA是一樣的。
  • VBA數組與字典解決方案第32講:數組的拆分和維數轉換
    特別說明:①如果同時使用 row_num 和 column_num,函數 INDEX 返回 row_num 和 column_num 交叉處的單元格的數值。②如果將 row_num 或 column_num 設置為 0,函數 INDEX 則分別返回整個列或行的數組數值。
  • 了解什麼是數組,如何應用數組,只需1分鐘就可以秒變數組大神!
    今天他來了,我們一起來從零開始學習什麼是數組。數組其實就是單元格中間的集合或是一組數據處理數值的集合。你也可以寫一個數組公式,即輸入一個單個的公式,讓他它執行多個輸入的公式同時產生的多個結果,讓他們每個結果顯示在一個單元格中進行運算。當然數組公式亦可以看成是有多個數值的公式,他和單個公式的不同之處在於它可以產生一個或者很多的結果。
  • Excel合併單元格的三種統計方法
    營長說昨天在微信群中,有夥伴諮詢,如何對有合併單元格的表格進行匯總求和。今天營長將Excel中合併單元格常見的三種處理方法介紹給你。01添加序號Excel的合併單元格不能通過拖動進行自動填充,我們可以在A列自己嘗試一下。在A2單元格輸入1,然後往下面單元格拖動填充序號,excel會給到我們這樣的提示:excel此操作要求合併單元格都具有相同大小。
  • 在VBA中如何使用動態數組,以及利用動態數組去除重複值的方法
    大家好,我們今日繼續講解VBA數組與字典解決方案第22講:在VBA中如何使用動態數組,以及利用動態數組去除重複值的方法。如果文本中含有大量的重複值,此時,如果我們要剔除重複值,該怎麼辦?用VBA的方法該如何做到呢?我在這講和下一講中將解答這個問題,並提供給讀者一個可以測試的實例。今日先講這個內容要用到的知識點。
  • Excel VBA 數組基礎知識,初學者不可不學的關鍵知識
    今天和大家要說的是VBA數組的基本知識點,等你學到後面就會知道,數組和字典搭配起來真的是事半功倍的啦!所以學習好數組的基本知識點也是必不可少的,基礎知識有了,才能有後面的應用。數組的基本概念數組其實是一組擁有相同元素的的組合。我們可以使用數組名稱和他在數組中的位置來指定某些特定的值。可以擁有很多的值,他們在數組內部是通過引索號進行區分的。
  • 利用VBA將數組的數據輸出到工作表,主管看了直呼大神
    35:48 來源: 愛玲說愛情 舉報   今天,給各位來嘮一嘮用VBA怎麼將數組的數據輸出到工作表
  • EXCEL知識:數組運算是什麼?
    下面我主要介紹一些我自己理解的數組運算。什麼是數組在Excel中,數組可以理解為多個單元格的集合。單行數據,單列數據(一維數組),多行多列數據(二維數組),都可以是一個數組。如下圖所示:上圖中數組1和數組2為一維數組,數組4和數組5為二維數組。
  • Excel公式技巧34: 由公式中日期的處理引發的探索
    這樣方便了日期的表示和存儲,但也同樣帶來了一些問題,例如我們以為是「2020-3-31」,因此會將數據直接與之比較,導致錯誤的結果。本文舉一個案例來講解公式中日期的處理方式。 如下圖1所示,計算2020年3月31日對應數據的平均值。
  • Excel函數large、與數組在實際案例中的聯合運用
    在講述這些數組計算的過程,我們也穿插了一些簡單的函數的使用方法,比如函數randbetween、函數sumproduct等,另外由於我們在生活和學習當中可能更習慣於去數值之間的計算,而忽視了對數組計算方法的學習,所以在之前的文章當中,一直在將數值計算和數組計算進行比較。
  • Excel VBA如何定義數組,這裡有最全的數組定義方法
    No.1VBA中的數組定義和賦值,是編程進階的一個標誌。無論什麼編程語文,數組的應用是一個十分重要的項目。如何玩到熟練,就各有各的玩法。但是基礎的東西,一定要掌握牢固。這樣才在應用的過程中,不會迷茫。No.2首先看一下上面的圖片,是為對數組定義的一個集合。
  • EXCEL中數組的應用專題之三:如何對數組公式進行編輯和刪除
    在上一講數組的應用專題之二中,我講過數組公式的特徵之一就是不能單獨編輯、清除或移動數組公式所涉及的單元格區域中的某一個單元格。這個特徵也是數組的重要應用之一。這裡我們再來回顧一下什麼是數組,什麼是數組公式.
  • excel函數應用:如何快速製作考生座次分配表
    既然要考試,自然就會涉及到考生座位安排的問題,今天我們就一起來學習一下,如何在excel中快速地製作考生的座位分配表!春節剛過,某部門馬上組織員工進行崗位技能考試,本次考試有561人報名參考,部門安排了兩個考場共18個考室,每個考室安排32座,需要對所有報名的考生隨機安排座位。
  • excel排序求和:如何統計前幾名數據合計
    今天我們要說說,如何在excel中,統計前幾名數據的合計。這個問題難倒了不少小夥伴,尤其是遇到數據是雜亂無序的情況,那更是要了老命。不過,這對於excel大神來說,還是非常簡單的,分分鐘列出一個公式,就完美解決了問題!今天我們就一起來破解一下面對這類問題時,大神都是怎麼做的吧!*********什麼叫做統計前幾名合計呢?
  • excel統計求和:如何在合併後的單元格中複製求和公式
    那麼我們在雙十一,每個物品對應的品類一共花了多少錢,如何簡單快速的計算並清晰的展示出來呢?接下來,小玲老師將利用去年雙十一的銷售數據,給大家介紹一種新的求和方法。去年雙十一,全網22家平臺的總銷售額最終鎖定在了3143.2億元,創歷史新高。
  • 用Union和Intersect方法獲得單元格區域
    3)Range("A1, A10").Select,將選擇A1和A10兩個單元格4)Union(Range("A1"), Range("A10")).Select 將選擇A1和A10兩個單元格5)Range("A1:A5 A5:A10").Select 將選擇A5一個單元格6)Intersect(Range("A1:A5"), Range(