Excel VBA(6)–聲明變量那些事

2020-12-13 騰訊網

我們在製作工資條的時候,已經聲明過變量了,具體可參閱

Excel VBA(5) – 一鍵製作工資條

那篇主要從應用角度寫,為了讓大家對 VBA 編程有個總體的概念,所以變量聲明部分一筆帶過,沒有詳細展開。

今天就來說說變量聲明那些事。

1. 什麼是變量?

與任何程式語言一樣,變量和常量是存儲數據的不同「容器」

顧名思義,變量的數據是可以更換的

而常量的數據是固定不變的

2. 聲明變量

既然變量是可以自定義的,我們在使用之前就要對它進行聲明。打個比方,擺婚宴就是為了向親朋好友聲明:我結婚了

VBA 的變量聲明格式為:

Dim 變量名 As 數據類型

變量名必須以字母或漢字開頭,不能包含特殊字符和空格

變量名最長不得超過 255 字符(超過 255 字符的,難道貴司以代碼長短考核 KPI 嗎?)

3. VBA 的數據類型

4. 聲明多個變量

可以寫在同一個 Dim 後面,變量名之間用逗號隔開,例如

Dim i As Integer, j As Long

也可以用不同的 Dim 語句聲明,例如

Dim i As Integer

Dim j As Long

5. 如果不聲明變量

不聲明變量類型的話,默認為 Variant 類型

Variant 為變體型,可以根據需要的數據類型改變自身類型與之匹配

6. 為什麼要聲明變量

既然有 72 般變化的 Variant 類型,為什麼還要聲明變量?

因為 Variant 佔用的存儲空間較大,無論程序運行速度還是存儲空間,都不優化。所以如非必要,請不要免去聲明變量步驟

7. 強制聲明變量

既然聲明變量那麼重要,我們能否強制?

可以在模塊的第一句輸入如下代碼:

Option Explicit

請從現在開始,養成強制聲明變量的習慣,當你將來代碼越寫越多,定會感激我

也可以在 VBE 的窗口中點擊「工具」-->「選項」-->勾選「要求變量聲明」,對所有模塊自動強制變量聲明

在強制聲明變量的模塊中,如果忘記聲明變量,運行程序時,會提示編譯錯誤:變量未定義

8. 變量的作用域:

9. 給變量賦值

把數據存儲到變量裡,稱為給變量賦值

語句為:

[Let] 變量名稱 = 數據

Let 可以省略

10. 給常量的聲明及賦值

常量不僅需要聲明,還要在聲明的同時就賦值

賦值以後的常量不能再重新賦值

語句為:

Const 變量名稱 As 數據 = 數值

11. 常量的作用域:

Excel學習世界

轉發、在看也是愛!

相關焦點

  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • Excel VBA 不可一世的宏中,基本數據構成你知道多少
    在上一期我們說到VBA的基本組織結構,那麼我們今天就來說說組成這些VBA代碼的磚瓦是由哪幾部分構成的,也就是說vba的處理數據的磚瓦。但是我們一旦聲明了變量,如果你還試圖去改下他的值,那麼這個時候就會報錯。還有另外系統自帶的常量,也就是VBA默認的常量,其實VBA提供了很多自己定義的常量,我們可以直接拿過來使用。如下圖所示,xlPortrait其實他也是一個常量,值為1.
  • EXCEL學習筆記之VBA
    1、變量如果給對象項變量賦值,必須用set關鍵詞>如Set sheet=Activesheet如果加上Option Explicit則變量必須先聲明後使用(6) 將數組中的數據寫入單元格區域arr=Split(1,2,3,4,5,6
  • 「Python替代Excel Vba」系列(二):pandas分組統計與操作Excel
    帶你用pandas玩轉各種數據處理前言在本系列的上一章已經介紹了如何讀寫 excel 數據,並快速進行匯總處理。但有些小夥伴看完之後有些疑惑:那只是簡單讀寫數據而已,有時候需要設置 excel 的格式。
  • VBA代碼大全010:用vba遍歷文件夾及其子文件夾內的文件
    vba老手都知道,vba寫多了,其實都是在做循環。循環處理多個單元格的內容,循環處理多個工作表的內容,循環處理多個工作簿的內容。
  • VBA基礎-對象變量的聲明與使用
    Sub useobejct()'聲明對象變量Dim MSheet As Object '聲明一個叫做MSheet的對象變量,未指定特定的對象類型>Dim MSheet1 As Worksheet '聲明一個叫做MSheet的工作表對象變量,僅僅是工作表類型Dim MRange As Range '聲明一個叫做MRange的range對象變量'如果事先沒有聲明對象變量
  • Excel VBA入門教程 1.6 過程和函數
    但是,與 Function 一樣,Sub 也可以修改傳遞給它們的任何變量的值。調用 Sub 過程有兩種方法:以下兩個語句都調用了名為 ProcExcel 的 Sub 過程。1.6.1 Sub 過程[Private|Public] [Static] Sub 過程名([參數列表 [As 數據類型]]) [語句塊]End Sub' [Private|Public]定義過程的作用範圍' [Static]定義過程是否為靜態' [參數列表]定義需要傳入的參數調用Sub的方法有三種,使用Call
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    最後,定義一個方法,讓vba調用。如下圖:這個方法的上方套上一個 xlwings 的裝飾器 @xw.func。表示這個方法需要註冊到 Vba 模塊中。而上述命令行只是把這個 xlam 文件放入你的 excel 加載項目錄中而已。然後,在你的任意目錄中打開命令行。執行以下語句,即會生成一個 py 文件和一個 帶宏的 excel 文件。
  • 【變量到底需要聲明嗎?】VBA新手答疑
    ▋很多新手糾結於是否聲明變量,有的人會告訴你,『一定要養成聲明變量類型的好習慣』,也有的人會告訴你,『聲明不聲明其實在很多時候無所謂』那麼到底是否需要聲明變量類型呢?關於是否在VBA程序開頭聲明變量類型,Excelhome論壇曾經有過很激烈的討論。看過之後我也深有感觸。
  • Excel VBA入門教程1.1 數據和數據類型
    類似的要使用vba,也要入鄉隨俗,了解他的構成,簡單的說vba包含數據類型、 變量/常量、對象和常用的語句結構。不過呢在量和複雜度上遠低於英語,不用那麼痛苦的記單詞了,所以vba其實很簡單的。熟悉了規則之後剩下就是查官方函數啦,查Excel提供的可操作對象啦。順帶一提的是,函數其實也很容易理解,方便使用。
  • vba第十八課
    vba第十八課調用工作表函數在vba中我經常會對工作表的數據進行一些運算,雖然通過代碼進行循環或判斷也可以完成,但是通vba調用函數可以更簡單更直接進行運算提高代碼的運行效率,比如countif、sumif等需要進行判斷統計和求和的運算。
  • Excel VBA解讀:基礎入門篇
    微信公眾號:excelperfect 在這裡,我們匯總了《
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • Excel VBA入門教程 1.9 換行和Set賦值注意點
    很明顯的是 vba中使用Dim設定變量類型,Set將對象引用賦值給變量' 將Range對象賦值給變量rgDim rg
  • Excel VBA入門教程 1.8 注釋語句的用法
    單引號 ' 舉例:' 定義全局變量;可以位於別的語句之尾,也可單獨一行。Rem 舉例:Rem 定義全局變量;只能單獨一行以下列舉出了不同級別的注釋代碼1.一般緊挨著源碼概要注釋下面,與其空一行到兩行'--' List of functions :' - 1 - PublicHolidayFr' - 2 - WorkingDay' - 3 - WorkableDay' - 4 - NextWorkingDay' - 5 - NextWorkableDay' - 6
  • VBA工作表事件實現「聚光燈效果」
    >    Cells.Interior.ColorIndex = 0 『清除單元格的顏色    Target.EntireRow.Interior.Colorindex= 6&
  • Excel VBA從新手到高手系列課程
    五、 教學目錄:第一章 新手篇-走進excel vba的世界      1.1 什麼是VBA      1.2 EXCEL中的宏      1.3 認識VISUAL BASIC編輯器        1.4 vba程序結構      1.5 數據類型         1.6
  • Excel VBA解讀(26):在對象中循環——For Each-Next結構的使用
    前面我們介紹過Excel的對象模型及一些常用的對象,也講解過對象變量的概念及聲明對象變量的方法。使用For Each-Next結構,我們無需知道集合中對象的數目,只需要聲明相應的對象變量,編寫執行操作的指令。
  • VBA學習筆記 1-2
    靜態變量 static  終於找到我出問題的部分了 哇咔咔聲明數組dim 或 public dim myarry(1 to 100)as integer必須指定上界 dim myarry(100)as integer  效果一樣聲明多維數組dim myarry(1 to 10,1to 10)as integer
  • VBA學習筆記 1-1
    ''  ActiveCell.Font.Bold = True    ActiveCell.FormulaR1C1 = "穆澤"    ActiveCell.Offset(1, 0).Range("A1").Select  End Sub測試顯示:當前滑鼠位置輸入名字excel