當前位置:
首頁 > 最新 > VBA課程記錄5

VBA課程記錄5

Range 對象

代表某一單元格、某一行、某一列、某一選定區域(該區域可包含一個或若干連續單元格區域),或者某一三維區域。

Range ("文本型裝單元格地址")

range的常見寫法

Sub rng()

Range("a1").Select 單元格

Range("a:a").Select 列

Range("1:3").Select 行

Range("a1:b10").Select 相鄰區域

Range("a1:d7,c4:e8").Select 不相鄰區域

End Sub

寫法:Range ("文本型裝單元格地址1","文本型裝單元格地址2")

range的變化寫法

Sub rng變化()

Range("a1:b10").Select 一般寫法

Range("a1", "b10").Select 變化寫法1

Range(Range("a1"), Range("b10")).Select 變化寫法2

Range("a1") = 123

End Sub

注意:

1.如果在range前沒有指定工作表,則默認為活動工作表

2.如果對象不是活動工作表(如活動圖表),則會出現錯誤

Sub 單元格對象例子()

Debug.Print Range("a:a").Count 計數工作表最大的行數

Debug.Print Range("1:1").Count 計算工作表最大的列數

Debug.Print Application.CountA(Range("a:a")) 計算工作表已使用的行數

Debug.Print Application.CountA(Range("1:1")) 計算工作表已使用的列數

End Sub

1.range("地址區域").range("地址區域")

Sub 序號表示法()

Range("b2:d4").Range("b2").Select 相對引用的寫法

參照前一個range的左上單元格

End Sub

2.range地址區域中支持變數

Sub range的變數支持()

Dim a%

a = 3

Range("a" & a).Select

Range("c3:e5")(2).Select

End Sub

Sub 實例1動態選單元格或區域()

Dim i%

i = Application.CountA(Range("c:c")) 找到c列中已使用的最後一個單元格位置

Range("c" & i).Select 選擇C列最後一格

Range("a1", "c" & i).Select 選擇A1到C列的最後一格(方法一)

Range("a1:c" & i).Select 選擇A1到C列的最後一格(方法二)

小結:動態單元格區域的定位,可以應用到單據的保存等實際工作中

End Sub

range區域中的每個單元格,我們也可以用索引號表示出來

寫法:range("單元格區域")(行號,列號)

Sub 索引號取出range的單元格()

Range("a1:c4")(4).Select 引用順序是:從左向右,從上到下選取

Range("b2:c4")(3).Select 以前一個單元格區域為照

Range("a1:c4")(4.5).Select 當有小數時,則取整

注意:如果索引號出現小數,則按照「四捨六入五單雙」的「銀行家舍入法」

End Sub

Sub 行列號定位()

Range("a1:c4")(3, 2).Select 利用行號與列號定位

Range("a1:c4")(1.5, 2.5).Select 行列號也可以使用小數

End Sub

小結:

1.這個索引值是參照前一個單元格區域左上單元格進行定位引用的

2.索引值可以是正數,負數,零值,小數

Sub 大於等於2500的平增工資()

Dim rs%, rng%, lj&, k%

For rs = 1 To 60

Range("b2:c20")(rs).Select

rng = Range("b2:c20")(rs)

If rng >= 2500 Then lj = lj + rng: k = k + 1

Next rs

MsgBox "大於等於2500的平均分為:" & Int(lj / k)

End Sub

cells單元格引用法

寫法:cells(行號,列號)

Sub cells基本寫法()

Cells(3, 4).Select 行列號均為數字

Cells(2, "c").Select 行為數字,列為列標字母

Cells.Select 全選

End Sub

cells可以像range一樣可以參照前面的單元格位置

Sub 參照寫法()

Range("b3:f11").Cells(2, 2).Select

Range("b3:f11").Cells(6).Select 從左到右,從上到下

Range("b3:f11")(6).Select 與上一句相等

End Sub

注意:

1.cells中的數字一樣支持正數,負數,0值,小數(四捨六入五單雙)

2.cells不能像range一樣可以引用一個區域,只能引用一個單元格

cells還可以嵌套在range中

Sub 嵌套()

Range(Range("b1"), Range("f11")).Select 這種嵌套方法寫變數比較麻煩

Range(Cells(3, 2), Cells(11, 6)).Select 這種嵌套方法寫變數比較方便

End Sub

Sub 動態引用行列區域()

Dim a%, b%

a = Application.CountA(Range("a:a"))

b = Application.CountA(Range("1:1"))

Range(Cells(1, 1), Cells(a, b)).Select

End Sub

除了前面講的rangecells單元格區域的表示方法還,還是一種簡單的寫法

寫法: [單元格地址] 注意:中括弧中的單元格地址並不需要雙引號("")

Sub 單元格簡寫()

[a3].Select 單元格引用

[b2:c6].Select 單元格區域引用

[a3,b2:c6,b8:d12].Select 多區域引用

[a:a].Select 整列引用

[1:1].Select 整行引用

End Sub

單元格簡寫的也支持引用子集

Sub 子集引用()

[b2:c6].Item(3).Select

Range("b2:c6")(3).Select

[b2:c6].Cells(4).Select

End Sub

Sub 動態區域的引用()

a = Application.CountA([a:a])

b = Application.CountA([1:1])

Range(Range("a1"), Range(Chr(64 + b) & a)).Select 利用chr函數,讓字母形式的列號也支持變數

End Sub

Sub chr函數字元循環()

For i = 1 To 65535

Cells(i, 1) = i

Cells(i, 2) = Chr(i)

Next

End Sub

Sub range引用區域且有變數()

Dim i

i = 1

Range("a1:c" & i).Select 引用單元格是區域且有變數

Cells(i, "c").Select 引用的是單個單元格且有變數

[a1:19].Select 引用的是區域或單元格且無變數

End Sub

Range.Row 屬性

返回區域中第一個子區域的第一行的行號

Range.Column 屬性

返回指定區域中第一塊中的第一列的列號

-------------------------------------------------

Sub test()

i = Range("a3:b9").Range("a5").Row

j = Range("a3:b9").Row

i = Range("b3:d9").Range("a5").Column

j = Range("b3:d9").Column

End Sub

Sub row應用()

For Each rw In Rows("1:13")

If rw.Row Mod 2 = 0 Then

rw.RowHeight = 5

End If

Next rw

End Sub

單元格的值表示方法

Sub 單元格值表示()

a = [a1].Value 實際是什麼,就是什麼

b = [a1].Text 看到是什麼,就是什麼

c = [a1]

End Sub

注意:一個單元格可以省略value,多單元格區域不能省略

Sub 多區域賦值()

Range("e1:e4") = Range("d1:d4").Value

End Sub

單元格地址與引用

Sub 地址與引用()

Set rng = [b2:f2]

[a9] = rng.Address(1, 1) 絕對引用

[b9] = rng.Address(0, 0) 相對引用

[c9] = rng.Address(1, 0) 混合引用

[d9] = rng.Address(0, 1) 混合引用

End Sub

總結:1代表固定,0代表不固定,默認是絕對引用

Sub 地址引用實例()

將表三成績中為空的單元格標為未考

Dim rng As Range, rn$

On Error Resume Next

For Each rng In Sheet3.Range("b2:d10")

If rng = "" Then rn = rn & rng.Address & ","

Next

Range(Left(rn, Len(rn) - 1)) = "未考"

End Sub

1.Range.Cut 方法

將單元格區域剪切到指定的區域

2.Range.Copy 方法

將單元格區域複製到指定的區域

------------------------------------------------------------

Sub 移動複製()

Range("a1:d8").Cut Range("f1")

Range("f1:i8").Copy Range("a1")

End Sub

Sub 另類複製方法()

Range("a10:d17") = Range("a1:d8").Value

End Sub

註:

1.等號後的區域一定要加value.否則不成功

2.被賦值的區域格式全部去掉

Sub 出差登記表記錄保存()

Dim rs%, crs%

rs = Application.CountA([d:d])

crs = Application.CountA(Sheets("出差記錄表").[a:a]) + 1

If rs = 1 Then GoTo 100

Range("a2:d" & rs).Copy Sheets("出差記錄表").Range("a" & crs)

End

100:

MsgBox "沒有要保存的數據!"

End Sub

工作表中單元格,行與列的插入與刪除

Sub 插入()

Rows(2).Insert

End Sub

Sub 隔行插入()

Dim r%

Do

r = r + 2

Rows(r).Insert

Loop Until Cells(r + 1, 1) = ""

End Sub

Sub 刪除()

Rows(1).Delete

End Sub

Sub 隔行刪除()

Dim r, s

m = Application.CountA(Columns(1))

For r = 1 To m / 2

Rows(r).Delete

Next

End Sub

活動單元格:activecell,工作表中活動單元格只有一個

Sub activecells()

a = activecell.Address 取得活動單元格地址

Cells(2, 3).Activate 激活指定單元格

End Sub

selection游標所選區域

Sub 游標所選區域()

Selection = 1

End Sub

Sub 在selection中的改變活單元格()

For i = 1 To Selection.Count

Selection(i).Activate

Next

End Sub

Sub 運用()

Dim i As Range

For Each i In Selection

If i = "" Or i = "缺勤" Then

i = "×"

End If

Next i

End Sub

Worksheet.UsedRange 屬性

返回一個 Range 對象,該對象表示指定工作表上所使用的區域

Sub 已使用區域()

Sheet1.UsedRange.Select

End Sub

注意:

已使用區域的定位方法是:已使用的最小單元格:最大單元格

如果單元格中無內容,但設定了格式,也認為是已使用區域

如果沒有已使用單元格,則默認為A1單元

Sub usedrange應用()

For Each Rng In Sheet1.UsedRange

If IsNumeric(Rng) And Rng >= 90 Then k = k + 1

Next Rng

MsgBox "大於等於90分的人數為:" & k & "人"

End Sub


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 生活本是如此 的精彩文章:

合約前是否應該讓對方知情
如何用經濟學思維提高個人能力
如何保證食品質量
價格歧視的作用
價格歧視的策略

TAG:生活本是如此 |