Filter函數和ReDim語句講解,以及VBA中利用動態數組排重的方法一

2021-01-09 VBA語言專家

大家好,我們今日繼續講解VBA代碼解決方案的第61講內容:在VBA中如何使用動態數組,以及利用動態數組去除重複值的方法。在上一講中我們講了使用數組函數將單元格中的文本進行分隔後寫入到工作表中的方法,那麼問題來了,如果文本中含有大量的重複值,在寫入時也會將重複值寫入到工作表中,此時,如果我們要剔除重複值,該怎麼辦?用VBA的方法該如何做到呢?我在這講和下一講中將解答這個問題,並提供給讀者一個可以測試的實例。今日先講這個內容要用到的知識點。

一 :Filter函數:這個函數返回一個下標從零開始的數組,該數組包含基於指定篩選條件的一個字符串數組的子集,語法如下:

Filter(sourcesrray, match[, include[, compare]])

參數

a) sourcesrray是必需的,要執行搜索的一維字符串數組。

b) match是必需的,要搜索的字符串。

c) include是可選的,Boolean值,表示返回子串是否包含match字符串。如果參數include是True,Filter函數返回的是包含match參數子字符串的數組子集。如果參數include是False,Filter函數返回的是不包含match參數子字符串的數組子集。

d) compare是可選的,所使用的字符串比較類型。

二:ReDim語句,這個語句在過程級別中使用,用於為動態數組變量重新分配存儲空間,語法如下:

ReDim [Preserve] varname(subscripts) [As type] [, varname(subscripts) [As type]]

參數

a) Preserve是可選的,關鍵字,當改變原有數組最末維的大小時,使用此關鍵字可以保持數組中原來的數據。

b) varname是必需的,變量的名稱。

c) subscripts是必需的,數組變量的維數,最多可以定義 60 維的多維數組,使用下面的語法;[lower To] upper [,[lower To] upper]

講到這裡,有的人會提出這樣的問題,什麼是過程呢?有興趣的朋友可以看我之前寫的一篇文章:什麼是宏?什麼是過程?這裡定義更為精確的給出:那麼什麼是過程呢?就是將輸入轉化為輸出的一組活動。在VBA中過程兩種一是Sub過程和Function函數過程。也就是說每組開始為SUB的活動都是一個過程,或者說每組開始為Function的活動也都是一個過程。ReDim語句就是在這個級別使用語句。

今日內容回向:

1: Filter函數的作用是什麼?

2:ReDim語句的作用是什麼?

3 什麼是過程?

相關焦點

  • 在VBA中如何使用動態數組,以及利用動態數組去除重複值的方法
    大家好,我們今日繼續講解VBA數組與字典解決方案第22講:在VBA中如何使用動態數組,以及利用動態數組去除重複值的方法。如果文本中含有大量的重複值,此時,如果我們要剔除重複值,該怎麼辦?用VBA的方法該如何做到呢?我在這講和下一講中將解答這個問題,並提供給讀者一個可以測試的實例。今日先講這個內容要用到的知識點。
  • VBA數組函數、差值的取得以及利用FileCopy語句複製文件
    NO.176-NO.177容是:NO. 180:在VBA中split和join對數組操作NO. 181:在VBA中查找數組的差集NO. 182:在VBA中使用FileCopy語句複製文件VBA過程代碼180:在VBA中split和join對數組操作 Sub mynz()Dim arr, myst As String
  • 記錄集賦值給數組後,利用轉置函數處理多維數組的方法
    大家好,今日繼續講解VBA資料庫解決方案,今日講解的是第76講,內容是:記錄集賦值給數組後,利用轉置函數處理多維數組的方法。我在第一冊的第43講中,我講了將記錄集存入數組的方案,並通過一個Index函數在工作表中恢復數組數據的方法。今日講的是利用轉置函數來完成同樣的功能。
  • VBA中動態數組的創建及利用
    在今後更加嚴峻的存量殘殺世界中,為自己的生存進行知識的儲備,特別是新知識的儲備。為後疫情時代做的必要準備。今日繼續和大家分享VBA編程中常用的常用「積木」過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。
  • VBA中的If-Then-Else語句
    第一節 If...Then...Else語句大家好,我們再次理解If...Then...Else語句在代碼中的作用,這個語句在VBA代碼中隨處可見,對於VBA而言,條件判斷應用的非常靈活,或者可以說是EXCEL函數的終結者,當你利用VBA上手後,不用再去應用EXCEL函數去解決問題了。
  • VB\VBA\VBS中的if語句以及多重and和or條件用法
    本例所舉例子均在vba代碼窗口中測試過需要的話可以直接複製代碼測試Sub If語句用法()a = Int(Rnd() * 51 + 50) '隨機生成50-100的整數MsgBoxend if的,但then後面的語句需要寫在同一行,如果then後面要運行多個語句可以用冒號(:)連接,如Sub if函數用法()a = Int(Rnd() * 51 + 50)MsgBox aIf a >= 90 Then MsgBox
  • VBA數組數據回填工作表
    我們在這一節和下一節將講解數組回填工作表的問題。本節先講解一維數組的回填。1 一維數組回填工作表的一般原則一維數組回填原則:若要將一維數組寫入工作表,必須創建一個Range對象,將該範圍調整為數組的大小,然後寫入該範圍。假設我們有一個一維數組,並希望從單元格A1開始將其寫入工作表。代碼必須首先調整目標範圍的大小。
  • VBA代碼解決方案第49講:VBA代碼中工作表函數SUM的利用方法 - VBA...
    大家好,我們今日繼續講解VBA代碼解決方案的第49講內容(註:在整理之前的VBA系列文章中合併了一些文章,重新成集排序為第49講,所以從這篇文章開始以新的排序計算):VBA中SUM函數的利用方法。對多個單元格求和,是統計工作中非常普遍的工作,在之前的函數講解過程中,我下了很大的氣力來講解SUM函數及其衍生的函數,在數組的講解中也講了此函數在數組中的利用,可以說SUM函數在統計工作中起著舉足輕重的作用,如果把這個函數利用好了,對自己的工作是非常方便的,今日我在VBA中就此函數的利用及規律再次加以講解。
  • 一文搞定前端數組方法
    本文總結的前端常見數組的使用方法一、toString()作用:將數組轉成字符串語法:示例代碼如下:二、join()作用:將數組轉成字符串第一個)元素的索引值 (必填)參數n表示要刪除(末位)元素的索引值(非必填,不填的情況下默認剪切後面所有元素)示例代碼如下九、contact()作用:合併數組,生成新數組,但不改變原數組語法:示例代碼如下十、filter數組的方法,用來過濾出符合條件的數據,並存入數組;filer 方法的參數方法裡
  • VBA中的循環語句
    在每日的講解過程中,對大家哪怕是一點點的收穫,我的時間也就是有意義的。今日給大家講VBA的循環語句,這個是非常基礎的知識,在VBA的相關內容中我也一直在用,也在不斷的講解,今日專門作為一個專題給大家詳細的說明,中間也有一些有意思的小例子,供大家玩耍。
  • Excel VBA 數組基礎知識,初學者不可不學的關鍵知識
    今天和大家要說的是VBA數組的基本知識點,等你學到後面就會知道,數組和字典搭配起來真的是事半功倍的啦!所以學習好數組的基本知識點也是必不可少的,基礎知識有了,才能有後面的應用。數組的基本概念數組其實是一組擁有相同元素的的組合。我們可以使用數組名稱和他在數組中的位置來指定某些特定的值。可以擁有很多的值,他們在數組內部是通過引索號進行區分的。
  • VBA代碼中數組的拆分與合併的實現
    在今後更加嚴峻的存量殘殺世界中,為自己的生存進行知識的儲備,特別是新知識的儲備。為後疫情時代做的必要準備。什麼是存量殘殺?簡單而言,在取代OFFICE新的辦公軟體沒有到來之前,誰能把應用做到最為先進,誰就是王者。其中登峰至極的技能非VBA莫屬!今日繼續和大家分享VBA編程中常用的常用「積木」過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。
  • 利用VBA代碼將文本轉換為數組函數
    在今後更加嚴峻的存量殘殺世界中,為自己的生存進行知識的儲備,特別是新知識的儲備。為後疫情時代做的必要準備。今日繼續和大家分享VBA編程中常用的常用「積木」過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。
  • 一起學JAVA——數組和函數
    今天我們高級數據類型——數組以及函數的作用。函數(方法)函數的定義函數就是一段有名字的代碼,可以完成某一特定功能。方法(函數)是java的最小代碼重用單位,方法(函數)是為了重用代碼。函數的重載和返回值類型無關。數組什麼是數組數組是一個類型一致,長度不可變的容器。可以通過索引操作容器中的每一個元素。如果有多個類型相同的數據需要存儲,我們就可以將其定義為一個數組,這樣做省去了創建多個變量的麻煩。
  • 你真的了解JS中的數組嗎?——數組API的總結
    在JS中,數組是一個非常重要的知識點,不管是在面試還是在日常工作中,都非常需要;而該文章,不去深究數據的定義方法等,而只是總結相應的API並簡單的介紹相應方法的應用;如下圖所示,是我本篇文章介紹的相應的數組方法。
  • VBA數組與字典解決方案第32講:數組的拆分和維數轉換
    大家好,我們今日繼續VBA數組與字典解決方案的講解,今日講解第32講,數組的拆分和維數轉換:一 數組的拆分1. 用Index拆分數組數組的拆分在VBA中是一個難題,如果是按行拆分數組,除了用循環外也只能借用API函數完成了。幸好我們可以借用工作表函數index達到按列拆分數組。
  • Excel VBA如何定義數組,這裡有最全的數組定義方法
    No.1VBA中的數組定義和賦值,是編程進階的一個標誌。無論什麼編程語文,數組的應用是一個十分重要的項目。如何玩到熟練,就各有各的玩法。但是基礎的東西,一定要掌握牢固。這樣才在應用的過程中,不會迷茫。No.2首先看一下上面的圖片,是為對數組定義的一個集合。
  • 常用VBA函數——LBound和 UBound函數
    一、題目:要求編寫一段代碼,運用LBound函數,返回數組的指定維數的最小可用下界;運用UBound函數,返回數組的指定維數的最大可用上界
  • Python零基礎入門教程,如何使用lambda、filter和map函數?
    大綱函數類型定義及特性lambda函數定義及使用filter函數定義及使用map函數定義及使用引入函數類型概念函數類型定義:python中任意一個函數都有數據類型,這種數據類型是function(函數類型)
  • 在Delphi XE7下如何建立動態數組呢?
    在Delphi XE7中Object Pascal有了一個很有意義的新功能,Object Pascal提供了初始化動態數組,並改進了它的工作與操作模式。那麼新的Delphi XE7中, Object Pascal語言可以讓我們做那些新的業務呢?大致來說有以下幾點:1.