国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
第3章 Excel VBA基礎語法 【上】

概述:

這時候讓我想起英語語法,太枯燥了,不過沒辦法,已經(jīng)想玩游戲,你得知道游戲規(guī)則,才能玩的更騷。。。。

1、 語法,編程的基礎

1.2、VBA中有哪些數(shù)據(jù)類型

數(shù)據(jù)類型就是根據(jù)不同數(shù)據(jù)特性,定義不同類型,例如文本、日期、數(shù)值等

VBA里的數(shù)據(jù)類型有:字節(jié)型(Byte)、整數(shù)型(Integer), 長整數(shù)型(Long), 單精度浮點型(Single), 雙精度浮點型(Double),貨幣型(Currency)等等


2、 存儲數(shù)據(jù)的容器:常量和變量

2.1、常量和變量

常量就是不變的量,例如π,變量就是可以變。

2.2使用變量

語法:Dim  變量名 As 數(shù)據(jù)類型

例如:Dim Str As String  (Str就是裝String類型的數(shù)據(jù))

Dim str As String*10 (表示最多裝10個字節(jié)數(shù)據(jù))

使用變量類型聲明符(簡寫模式)如上圖所示類型標識符

Dim Str$  (這里$字符串, 原來美元就是一個字符串丫)

聲明多個變量(逗號隔開

Dim str As String, num As Integer,

 相當于:

Dim str As String

Dim num As Integer

如果不指定變量類型 

Dim Str (默認是Variant類型)

什么是Variant

所有數(shù)據(jù)類型統(tǒng)稱,它表現(xiàn)所有數(shù)據(jù)類型,意味它很大(一般不要聲明為Variant,你計算都不知道應該給你這個變量分配多少內(nèi)存,殺雞焉用牛刀一個道理)

強制聲明所有變量

方法一:在模塊的第一句手動輸入代碼:“Option Explicit”,它會強制檢查。


方法二:在工具菜單欄中有設置選項,在每一次插入模塊自動會添加 Option Explicit


還可以聲明變量的作用域(也就是變量在哪里有效)

語法一: Public 變量名 As 數(shù)據(jù)類型

語法二:Private 變量 As 數(shù)據(jù)類型

語法三:Static 變量名As 數(shù)據(jù)類型

例如:

Public str As String 

Private str As String

Static str As String

變量的作用域


把數(shù)量存儲到變量里

基本數(shù)據(jù)類型

語法 【Let】 變量名稱 =數(shù)據(jù)   (【】表示可以省略)

簡寫為 變量名稱=數(shù)據(jù)

  1. Option Explicit
  2. Sub 第一個宏()
  3. Dim str As String '聲明變量名為str,類型為String
  4. Let str = '一起來學VBA' '將“一起來學VBA”賦值給str變量,那么str就代表這個字符串
  5. Range('A1').Value = str '將字符串轉(zhuǎn)換填充單元格A1
  6. End Sub



給對象變量賦值,語法

Set 變量名稱 = 對象(Set不能省略)

  1. Option Explicit
  2. Sub 第一個宏()
  3. Dim rng As Range '聲明一個Range變量,可以表示單元格
  4. Set rng = Worksheets('Sheet2').Range('A1') '將工作表Sheet1的A1單元格對象賦值給rng
  5. rng.Value = '學習VBA就是這么簡單' '這時候rng就代表A1單元格
  6. End Sub


2.3 使用常量

常量通常用來存儲一些固定的不會被修改的值,如圓周率π,各種稅率 (其實就是取有意義變量代替值)

所以只能賦值一次

語法: Const 變量名稱 As 數(shù)據(jù)類型 = 數(shù)值

常量作用域類似變量,在過程中定義,過程內(nèi)可用(本地常量),過程外定義,模塊級常量, public + 過程外定義  公共常量

2.4、 使用數(shù)組

什么是數(shù)組

數(shù)組類似你買一盒餅干,分成幾個格,每一個的餅都是一樣的。

數(shù)組特點:

  • 數(shù)據(jù)共享同一個名稱,即數(shù)組名
  • 數(shù)組有多個同種類型的變量組成
  • 數(shù)組中的元素按次序存儲在數(shù)組中,通過索引號進行區(qū)分
  • 數(shù)組也是變量

語法:

Dim 數(shù)組名(a to b) As 數(shù)據(jù)類型

Dim num (1 to 50) As String (表示50個字符串打包成的數(shù)組)。

給數(shù)組賦值

num(1) = '1號' (序號為1 放入一個字符串為'1號')

num(2)='2號'   (序號為2 放入一個字符串為 “2號”)

簡寫 Dim arr(49)  As String  相對于 Dim arr(0 to 49) As String    (注意是從0開始的)

例子:

  1. Option Explicit
  2. Sub 第一個宏()
  3. Dim num(1 To 10) As String
  4. num(1) = '1號'
  5. num(2) = '2號'
  6. num(3) = '3號'
  7. Range('A1') = num(1)
  8. Range('A2') = num(2)
  9. Range('A3') = num(3)
  10. End Sub


以上是一維數(shù)組,就像排隊買早餐

如果要在電影院確定你位置這時候需要二維數(shù)組,也就是第幾排第幾列

Dim 電影院 (1  to 10, 1 to 30)  As String      (表示電影院10行,每行30十個座位)

簡寫 Dim 電影院(9, 29) As String   (因為從0開始,所以減一)

三維數(shù)組類似: 空間坐標, x,y,z軸   

Dim 坐標  (1 to 10, 1 to 20, 1 to 2) As String  (可以認為是x軸范圍1到10, y軸范圍為1到20, z軸坐標1到2所組成所有點)

當然還有四維數(shù)組、五維數(shù)組等等。一般用的最多的只有一、二數(shù)組。

聲明動態(tài)數(shù)組

語法: Dim 數(shù)組名稱 ()                      (既然動態(tài),表示剛開始時候不知道到底裝多少元素,所以括號里什么也沒有寫,只知道是數(shù)組數(shù)據(jù)類型)

如果知道確定大小之后可以采用 ReDim (Re 在英語中就是再一次意思) 關(guān)鍵詞進行定義大小

代碼:

  1. Option Explicit
  2. Sub 統(tǒng)計單元格()
  3. Dim arr() As String
  4. Dim n As Long
  5. '統(tǒng)計A列有多少個非空單元格
  6. n = Application.WorksheetFunction.CountA(Range('A:A'))
  7. MsgBox ('A列所有單元格的數(shù)量:' & n)
  8. '重新定義數(shù)組大小
  9. ReDim arr(1 To n) As String
  10. End Sub

效果:


其他常用的創(chuàng)建數(shù)組的方式

方法一: 使用Array函數(shù)創(chuàng)建數(shù)組

語法:Array(元素1,元素2)      (注意括號和逗號都是英文,記住一點就是設計涉及軟件都是英文的狀態(tài)的符號,這是也是剛開始最容易犯的錯誤,怎么也找不到錯誤的位置)

  1. Option Explicit
  2. Sub ArrayTest()
  3. Dim arr As Variant
  4. '將1到10十個自然數(shù)賦給數(shù)組arr
  5. arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
  6. MsgBox 'arr數(shù)組的第二個元素為(注意編號從0開始):' & arr(1)
  7. End Sub


方法二: 使用Split 函數(shù)創(chuàng)建數(shù)組  (Split:就是分割意思)

語法: Split('字符串', '以字符作為分割線')

  1. Option Explicit
  2. Sub SplitTest()
  3. Dim arr As Variant
  4. '利用split 生成數(shù)組
  5. arr = Split('堅持不懈,直到成功', ',')
  6. MsgBox 'arr數(shù)組的第二個元素為(注意編號從0開始):' & arr(1)
  7. End Sub


方法三: 通過Range對象直接創(chuàng)建數(shù)組 (Range是VBA用得最多,它代表單元格范圍,可以單個,也可以是多個)

  1. Option Explicit
  2. Sub RngArrTest()
  3. Dim arr As Variant '定義變量
  4. arr = Range('A3:C11').Value '首先將單元A3到C11存到變量arr中
  5. Range('A13:C17').Value = arr '然后將新的值寫入單元格中
  6. End Sub


UBound和LBound函數(shù) (計算索引值)

用到數(shù)組最關(guān)心的數(shù)組什么時候數(shù)組最后一個元素,所有這個用這個函數(shù)解決你疑慮

語法: UBound(arr)  (upper取第一個字母,表示大,也就是數(shù)組最后一個元素的序號是多少)

LBound(arr)  (Lower 取第一個字母,表示小, 也就是數(shù)組第一個元素的序號是多少)

那么數(shù)組中有多少個元素呢?  

UBound(arr) - LBound(arr) + 1

  1. Option Explicit
  2. Sub RngArrTest()
  3. Dim arr(10 To 50) '定義數(shù)組,從10到50
  4. MsgBox '數(shù)組的最大索引號是: ' & UBound(arr) & Chr(13) _
  5. & '數(shù)組的最小索引號是:' & LBound(arr) & Chr(13) _
  6. & '數(shù)組的元素個數(shù)是:' & UBound(arr) - LBound(arr) + 1
  7. End Sub


對于多維數(shù)組求索引號

  1. Option Explicit
  2. Sub RngArrTest()
  3. Dim arr(1 To 10, 1 To 100) '定義二維數(shù)組
  4. MsgBox '第一維的最大索引號是:' & UBound(arr, 1) & Chr(13) _
  5. & '第二維的最小索引號是:' & LBound(arr, 2)
  6. End Sub


Join 函數(shù),(這個函數(shù)和Split函數(shù)剛好相反,它將字符串連成一個字符串 )

語法: Join (數(shù)組 , '連接符')

  1. Option Explicit
  2. Sub JoinTest()
  3. Dim arr As Variant, txt As String
  4. arr = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
  5. txt = Join(arr, '-')
  6. MsgBox txt
  7. End Sub


將數(shù)組寫入單元格區(qū)域

批量寫入數(shù)據(jù),利用轉(zhuǎn)置(也就是行變成列,列變成行)

  1. Option Explicit
  2. Sub ArrToRng1()
  3. Dim arr As Variant
  4. arr = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)
  5. '將數(shù)組批量寫入單元格
  6. Range('A1:A9').Value = Application.WorksheetFunction.Transpose(arr)
  7. Range('B1:B9').Value = arr
  8. End Sub


東西太多了,見下一節(jié)

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA進階|利用VBA數(shù)組管理數(shù)據(jù)清單和表格
VBA數(shù)組的深入講解:創(chuàng)建數(shù)組的方法及數(shù)組大小的判斷
VBA筆記:數(shù)組
VBA基礎-數(shù)組知識
Excel 墻上那一串串紅辣椒——數(shù)組入門講座
Vba菜鳥教程[通俗易懂]
更多類似文章 >>
生活服務
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服