excel編程系列基礎:VBA常用的操作對象RANDE

2020-12-03 部落窩教育H

編按:哈嘍,大家好!前段時間和大家提到了讓excel自殺的VBA代碼,引起了不少小夥伴的討論,都說想看部落窩分享更多關於excel中VBA的知識,別催別催,這不就來了嗎。學習更多技巧,請收藏部落窩教育excel圖文教程。

說在【前言】前面的話

如果你已經準備開始學習EXCEL VBA,或者看了此文後對學習EXCEL VBA有了絲絲興趣,還想繼續跟隨作者「由淺入深」的學習VBA,那就在評論區留言「繼續VBA!」,點一下「在看」、「關注」不迷路,你的「打Call」就是作者寫作的動力。

【前言】

一座冰山浮出海面,我們看得到浮在海面以上的部分,還有一部分卻是浸在海面以下的,如果不考慮海水的密度和水的密度的差異,那麼「海面以上體積:海面以下的體積≈1:9」。在EXCEL中也有類似的一個比例,那就是「日常使用的知識:excel不會應用的知識」,但是這個比例大概有多少就不好說了,因為每個人掌握EXCEL的程度是不一樣的,不敢說「九牛一毛」,但是大部分的同學還只是用到「皮毛而已」。當你有一天真正的運用到了VBA,才會對EXCEL的運行原理有更加透徹的理解和使用。

【正文】

VBA在EXCEL中本質上是對於操作對象的操作,是對被操作對象的各種屬性和方法的運用,將日常我們需要手工操作或者函數引用的內容,編輯成VBA可以識別的語言,在觸發條件下實現自動化運行的過程。下面我們就來介紹幾種「RANGE(單元格區域)」時常會用到的操作。

一、SELECT屬性

英語中SELECT被譯作「選擇、選定」的意思,也就是我們常說的「選中單元格區域」,下面舉幾個例子。

1.選擇連續區域。例如,我們有一段代碼如下:

Sub 選中單元格()

Sheets("select").Range("A1:D6").Select

End Sub

代碼含義:選中《select》工作表的A1:D6單元格區域。

2.選擇一個單元格。如果我們只需要執行選擇一個單元格的操作,那可以按下面的寫法處理,如下:

Sub 選中一個單元格1()

Range("B1").Select

End Sub

Sub 選中一個單元格2()

[C2].Select

End Sub

Sub 選中一個單元格3()

Cells(3,4).Select

End Sub

這裡我們給出了三段代碼,運行效果如下:

為什麼用了三種方式來寫,這裡就需要講到單元格在VBA中的表示方法了。

<小知識>

在VBA中對於單元格的表達方式主要有三種:RANGE、CELLS、中括號。

(1)RANGE:書寫方式是在RANGE表達式後的括號中,寫出需要被引用的單元格區域,如上面的A1:D6,或者直接寫某一個單元格地址A1。注意單元格地址需要用英文狀態的雙引號括起來才能生效。

(2)中括號:這是一種單元格表達式的簡便寫法,如:[A1:D6]、[A1],不需要加雙引號。

(3)CELLS:它是一種以行列號鎖定單元格的方式,語法為CELLS(行號,列號)。它只能選定一個單元格,如上面的CELLS(3,4)等同於RANGE("D3")或者[D3]。如果需要使用CELLS表示一個區域,可以結合RANGE,如RANGE(CELLS(1,1),CELLS(3,4)),就代表引用A1:D3區域。

相對於上面兩個小節的內容,細心的同學一定可以看到,在我們的代碼中有的指定了工作表,如第1小節的代碼Sheets("select").Range("A1:D6");有的沒有指定工作表,如第2小節的那三段代碼,此時我們就要引用一個新的概念:ACTIVESHEET。

其實我們在寫這兩個小節的內容時,建立了兩個工作表,如下圖:

在寫第1小節的內容時,我們是選中了「select」工作表之後操作的,此時的「select」工作表就是ACTIVESHEET工作表,也就是我們常說的「被選中的工作表」或者「前臺顯示的工作表」。

而當我們的ACTIVESHEET 工作表是「select單元格」工作表時,同學們還「敢不敢」再運行一下「工程:選中單元格」呢?

Sub 選中單元格()

Sheets("select").Range("A1:D6").Select

End Sub

作者E圖表述知道你們都「膽大妄為」,但結果就是代碼報錯,因為SELECT屬性一定要在ACTIVESHEET表中才有效,如果ACTIVESHEET和代碼中SHEETS工作表名稱不一致,則不能運行。如果代碼中沒有指定SHEET,那麼代碼默認只在ACTIVESHEET中運行。

3.選擇不連續區域。舉個例子,代碼如下:

Sub 選中不連續區域()

Range("A1:D6, E10, E1:F3").Select

End Sub

在VBA中對於選中不連續區域的表達方式,就是用一個逗號間隔開地址,然後再用英文狀態下的雙引號將它們括起來,這樣就可以完成引用。

4.選擇區域的交集部分。舉個例子,代碼如下:

Sub 選中交集區域()

Range("A1:D6 D1:F3").Select

End Sub

在例3中,逗號是聯合引用符,那麼區域的交集部分,在EXCEL中是使用空格連接的。學習更多技巧,請收藏部落窩教育excel圖文教程。

這和我們使用工作表函數的道理是一樣的。怎麼?你還不知道工作表函數的「交集引用」嗎?寫法都是一樣的,如下圖所示:

二、單元格賦值

「賦值」,顧名思義,其實就是給某一個對象的屬性「賦予一個值」,按照賦值的規則,賦予的內容可以是「數值」、「文本」等等。當然在VBA中值的格式有很多,我們可以先易後難,先了解日常使用的,再去考慮深入研究,這是一個很重要的學習方法,「先了解用法,再了解還可以怎麼高級的運用!」

1.單元格賦值。給一個或者多個單元格賦值的過程,其實很簡單。想想我們在使用工作表函數的時候,是不是需要先輸入一個「=」,函數才能生效。這個「=」就是給單元格賦值的命令符,代碼如下:

Sub 賦值1()

Sheets("單元格賦值").Range("A3") = 6

Sheets("單元格賦值").Cells(4, 1) = "乘數"

Sheets("單元格賦值").[A5] = "被乘數"

End Sub

在代碼中,我們依然使用了三種單元格的表示方式,分別給A3、A4、A5單元格進行了賦值,這其中有數值,也有文本,當然文本需要使用英文狀態的雙引號括起來,這個規則和工作表中函數的寫法是一樣的。

2.跨表引用,計算式結果賦值。我們在工作表「select」中設置了兩個數值,現在將兩個值的乘積賦值給B3單元格,代碼如下:

Sub 賦值2()

Sheets("單元格賦值").Cells(3, 2) = Sheets("select").Range("B2") * Sheets("select").Range("B3")

End Sub

「select」工作表的B2單元格是4,B3是6,相乘等於24,用「=」號賦值給了「單元格賦值」工作表中的Cells(3,2)單元格(即B3單元格)。就是如此簡單,只要了解了代碼的表達式寫法,就可以寫出VBA代碼啦~

3.工作表函數也能在VBA中使用。如果你要匯總一列數據,是不是馬上就會想到SUM函數,其實在VBA中一樣可以使用SUM函數。舉個例子,代碼如下:

Sub 賦值3()

Sheets("單元格賦值").[C1:C10] = 1

Sheets("單元格賦值").[C11] = Application.WorksheetFunction.Sum(Sheets("單元格賦值").[C1:C10])

End Sub

給一個區域賦同一個值,再使用SUM工作表函數對這個單元格區域匯總求和,Application.WorksheetFunction就是調用工作表函數的語句。

【編後語】

看完文章有沒有GET到一些VBA的入門知識呢?作者E圖表述認為,VBA不應該有「初級知識」這種說法,因為高級語句也是由這些基礎知識構建起來的,先學基礎,再積累思路,相信同學們一定可以自己寫出代碼。學習更多技巧,請收藏部落窩教育excel圖文教程。

****部落窩教育-VBA編程基礎教程****

原創:E圖表述/部落窩教育(未經同意,請勿轉載)

更多教程:部落窩教育

相關焦點

  • excel編程系列基礎:操作對象RANDE的屬性介紹
    在上篇的VBA文章中,我們提到了RANGE屬性,簡單介紹了它在選中單元格區域,以及對單元格區域賦值時的作用,但這僅僅是最基礎的應用,今天我們繼續來講解RANGE屬性。【前言】在上一篇文章中,作者E圖表述給大家分享了關於RANGE對象引用的方法。
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • 「Python替代Excel Vba」系列(二):pandas分組統計與操作Excel
    請關注本號,更多乾貨,立刻送達~~系列列表學Python還不會處理Excel數據?帶你用pandas玩轉各種數據處理前言在本系列的上一章已經介紹了如何讀寫 excel 數據,並快速進行匯總處理。但有些小夥伴看完之後有些疑惑:那只是簡單讀寫數據而已,有時候需要設置 excel 的格式。
  • VBA基礎概念-對象、屬性、方法
    Sub 對象屬性與方法()'什麼是對象'「對象」是通過VBA控制的東西,可以理解為名詞'例如:工作簿,工作表,工作表裡的單元格區域,圖表等'對象集合'一組相似的對象被稱為對象集合'例如工作表集合sheets,代表了所有的工作表和圖表
  • Excel VBA操作電子表格兩大重要屬性詳解
    為此,本文詳細講解如何使用excel VBA中的對象使用以及如何使用VBA操作電子表格,旨在讓大家理解編程的核心,理解常用功能的引用,幫助大家快速實現辦公自動化。01基礎概念在Excel VBA編程所有的對象都是分層進行的,因此我們得提前了解VBA編程引用的方式,才能夠進入單元格的操作中。在Excel VBA編程中所有對象、屬性、方法、事件都是點號(」.」)逐層引用的,比如對象名.屬性名、對象名.方法名。
  • VBA編程理論學習之談
    No.1 掌握對象方法和屬性VBA編程是一個即學即用的過程,幾乎不可能全面掌握所有對象的代碼,也不可能記住所有的對象屬性。所以,在實際應用中遇到哪些對象就對應去掌握這些對象的方法和屬性就可以,不需要完全學習。既浪費時間又沒有意義。
  • excel編程系列基礎:認識VBA的編輯器VBE
    學習更多技巧,請收藏關注部落窩教育excel圖文教程。【前言】作者E圖表述在「部落窩」也寫了不少VBA的文章了,並且現在依然保持更新,還是那句話:在操作函數、數透、圖表、VBA這幾大EXCEL模塊中,唯獨VBA是一定要按部就班、循序漸進的學習。
  • Excel VBA編程中必須掌握的3個基礎知識點
    VBA編程功能非常強大,對於excel的功能拓展至關重要,同時也是實現excel自動化處理數據的關鍵。但是在職場中不是所有人都有編程基礎,所以我們不能像程式設計師一樣寫出規範的、高大上的代碼,我們想要的無非是快速實現功能,給我們的工作提高效率,但不管怎麼樣也得了解VBA編程的規範和要求,一些基礎性的知識還是需要知道和了解的,只有熟悉這些基礎知識,我們才能快速編程,真正做到事半功倍。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    系列文章學Python還不會處理Excel數據?帶你用pandas玩轉各種數據處理「Python替代Excel Vba」系列(二):pandas分組統計與操作Excel「Python替代Excel Vba」系列(三):pandas處理不規範數據「Python替代Excel Vba」系列(四):課程表分析與動態可視化圖表前言有小夥伴向我反映到,本系列前面的章節主要還是在講 pandas ,幾乎與 xlwings 沒有啥關係
  • 系統思維在Excel vba編程中的思考
    文:江覓易見編程首先要考慮的問題是需求,正因為需求的存在,所以要做編程的工作,然後要分析需求以及實現需求而實施的方式方法,最終輸出需求結果。這是整個編程中要考慮的內容,也是解決需求的一般過程。系統思維的建立有助於編程思想的提高和理解需求的應用場景,進而對編程實施有一個全面而有效的方法布置。系統三要素:元素、關係、功能引用到Excel vba編程中。
  • Excel VBA Programming For Dummies, 5th Edition 電子書分享
    書籍描述:將您的Excel編程技能提升到新的水平要將Excel提升到下一個層次,您需要了解並實VisualBasicforApplications(VBA)的強大功能。Excel vba編程的假人介紹了一系列新的Excel選項,從最重要的工具和操作為Visual Basic編輯器開始。在內部,您將找到用Excel編程的基本元素和概念的概述。您很快就會發現處理錯誤和消除錯誤、處理範圍對象和控制程序流等技術。有了關於開發自定義對話框、工具欄和菜單最簡單方法的友好建議,讀者將根據自己的獨特需求定製Excel應用程式!
  • Address屬性介紹,vba編程學習基礎知識
    No.1Address是Range對象的一個重要屬性,而用好這個屬性也是學習vba編程一個必修課。本章介紹關於Address的一些參數功能,對於全面了解和學習Range地址尋址方面十分必要。Address英譯為地址。
  • excel編程系列基礎:常用語句之循環語句的邏輯理解
    Next iEnd SubLine1:設定循環變量i,循環的範圍是從1開始,到100000結束;Line2:使用Sheets("A")作為同一系列對象的父級隸屬關係;Line3:操作Sheets("A")中,從Cells(1, 1)開始的,Cells(2, 1),……,Cells(i, 1) ,……,到Cells(100000, 1)為止的對象,並將對應的ROW屬性賦值給對應單元格;Line4:結束With
  • Excel實現信息管理系統之數據錄入界面設計步驟詳解
    因此在excel的基礎之上自己設計一個數據錄入功能,相信上述問題都能夠得到很好的解決,同時很多數據都是可以通過excel表格自動生成,從而減少了數據錄入的數量,從而提高了數據錄入的質量和效率。說到這兒,很多人可能會想,這涉及到了excel的vba編程呀,我不會編程呀,這會不會很難呢?
  • Excel VBA常用代碼!
    前兩天有兩位朋友留言想收集一些VBA的常用代碼,今天開始會陸續分享一些!記得收藏好哦,因為今後你應用到稍大型Excel VBA程序時,這其中某些代碼肯定會用到。來看看都是哪些常用代碼:下面先舉一個簡單的例子:場景再現:在當前的工作表中插入一張e盤中名為1.jpg的圖片(長350、高300,距離Excel左側90、上邊框230)操作方法:第一步,打開vba代碼區,輸入通用格式【輸入 sub 統計()回車即可】,並將名稱改為「統計」;第二步,輸入控制語句(ActiveSheet.Shapes.AddPicture
  • Excel VBA 操作文件(夾)神器——FSO對象
    FSO是FileSystemObject(文件系統對象)的簡稱,提供了在windows中操作本地文件和文件夾的功能,此對象不光可用在VBA編程中,VC,VB程式語言中也可以實用此對象。FSO 對象模型可以實現文件(夾)的創建、改變、移動和刪除等常見操作,也可以獲取文件(夾)的名稱、大小、屬性、創建日期或最近修改日期等信息,還可以檢測是否存在指定的文件夾。通過FSO 對象模型可以獲取當前系統驅動器信息,如驅動器的種類(CD-ROM還是可移動磁碟)、磁碟剩餘空間等等。
  • VBA編程,如何插入刪除字符,一定要收藏
    No.1字符對象應用中,比較少,也是一個很有用的對象。是一個基礎對象,其功能可以對返回的字符進行一些添加和刪除操作。還有一些屬性可以調用和設置。下面具體看一下字符對象的一個屬性:其中,用到比較多的有Caption、Count、Font和text屬性。Font屬性可以返回一個Font對象,可以對字符進行更多的屬性設置。具體內容可查看下圖:No.2下圖為例,對字符對象和屬性進行了一個編程學習。Characters既是一個屬性又是一個對象。
  • WPS教程:excel新手入門VBA功能使用介紹
    Excel教學:今天和大家分享一下excel中vba的使用方法入門,相信很多使用該軟體的朋友們對此都很感興趣,下面就和大家來分享一下,希望可以幫助到大家。工具/原料電腦:組裝臺式機系統:windows 10專業版版本:WPS Office 2019 PC版方法/步驟1.首先,我要知道商品的單價是12.5,在D1單元格輸入【商品單價】,在D2單元格輸入12.52.接著我們打開vb界面,在常用工具欄上執行:開發工具--visual basic。
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • vba第十七課
    vba第十七課with語句當對某一個對象執行一系列語句時,不用重複指出對象名稱例:用vba代碼進行排版,加上黑色邊框,設置行高為30,垂直居中,水平居中、字體大小為18,寬度自適應Sub with語句()With Sheets(1).Range("a1:f11") .Borders.ColorIndex