最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

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

2020-04-25 15:29 作者:IT部落窩教育  | 我要投稿


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

說在【前言】前面的話?

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

【前言】

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

【正文】

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

一、SELECT屬性

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

1.選擇連續(xù)區(qū)域。例如,我們有一段代碼如下:

Sub?選中單元格()

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

End Sub

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

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

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表達式后的括號中,寫出需要被引用的單元格區(qū)域,如上面的A1:D6,或者直接寫某一個單元格地址A1。注意單元格地址需要用英文狀態(tài)的雙引號括起來才能生效。

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

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

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

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

在寫第1小節(jié)的內容時,我們是選中了“select”工作表之后操作的,此時的“select”工作表就是ACTIVESHEET工作表,也就是我們常說的“被選中的工作表”或者“前臺顯示的工作表”。

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

Sub?選中單元格()

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

End Sub

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

3.選擇不連續(xù)區(qū)域。舉個例子,代碼如下:

Sub?選中不連續(xù)區(qū)域()

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

End Sub

在VBA中對于選中不連續(xù)區(qū)域的表達方式,就是用一個逗號間隔開地址,然后再用英文狀態(tài)下的雙引號將它們括起來,這樣就可以完成引用。

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

Sub?選中交集區(qū)域()

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

End Sub

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

這和我們使用工作表函數(shù)的道理是一樣的。怎么?你還不知道工作表函數(shù)的“交集引用”嗎?寫法都是一樣的,如下圖所示:

二、單元格賦值

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

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

Sub?賦值1()

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

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

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

End Sub?


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

2.跨表引用,計算式結果賦值。我們在工作表“select”中設置了兩個數(shù)值,現(xiàn)在將兩個值的乘積賦值給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.工作表函數(shù)也能在VBA中使用。如果你要匯總一列數(shù)據(jù),是不是馬上就會想到SUM函數(shù),其實在VBA中一樣可以使用SUM函數(shù)。舉個例子,代碼如下:

Sub?賦值3()

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

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

End Sub?


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

【編后語】

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


本文配套的練習課件請加入QQ群:981335662下載。

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

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

更多教程:部落窩教育(http://www.itblw.com)

微信公眾號:exceljiaocheng,+v:blwjymx2


excel編程系列基礎:VBA常用的操作對象RANDE的評論 (共 條)

分享到微博請遵守國家法律
教育| 临夏县| 桃园县| 来凤县| 曲阳县| 兴海县| 潞城市| 伽师县| 滨海县| 偃师市| 雷山县| 吉水县| 汶上县| 武夷山市| 焦作市| 香格里拉县| 新郑市| 黄梅县| 荔波县| 陆丰市| 蒙阴县| 临安市| 明星| 乐山市| 奉新县| 和龙市| 襄汾县| 塘沽区| 炉霍县| 建瓯市| 巴林右旗| 米脂县| 龙山县| 尤溪县| 崇礼县| 永宁县| 寿宁县| 濮阳市| 会宁县| 德清县| 仁布县|