Excel VBA:單元格對象

多種方法引用單元格

Range(“A1”)方式——表示A1單元格
Cells(1,1)方式——表示A1單元格(cells屬性返回單元格區域中指定行和列相交的單元格)
Cells(1,“A”)方式——表示A1單元格Cells(2,1)方式——表示A2單元格
[A1]方式——表示A1單元格

注意:①列標不區分大小寫 ②VBA中字符用加雙引號"",數字和變量無需加雙引號""。所以,Cells(1,“A”)方式很好理解了。

多種方法引用單元格區域

Range(“A1:B2”)方式——表示A1到B2的單元格區域,包括4個單元格
[A1:B2]方式——表示A1到B2的單元格區域,包括4個單元格
以下三種方式等同:
Range(Cells(1, 1), Cells(10, 5))
Range(“A1”, “E10”)
Range(Range(“A1”), Range(“E10”))
均表示工作表中A1:E10單元格區域

優缺點討論:Cells(1,1)缺點是形式不支持引用區域,不支持成員列表;[A1]形式不支持循環,不支持成員列表;Range(“A1”)形式支持循環,支持引用區域,支持自動列出屬性,方法等成員。

引用整行或者整列

Range(3:3)——表示引用第三行
Range(2:5)——表示引用第二到第五行
Range(“D:D”)——表示引用D列(D不區分大小寫)
Rows(3)——表示引用第三行
Rows(“3”)——表示引用第三行
Rows(“3:5”)——表示引用第三到第五行
Columns(3)——表示引用第三列
Columns(“C”)——表示引用第三列
Columns(“C:D”)——表示引用C到D列

屬性

offset
作用:返回Range對象,它代表位於指定單元格區域的一定的偏移量位置上的區域。
語法
Range.Offset(RowOffset, ColumnOffset)

RowOffset:區域偏移的行數(正數、負數或 0(零))。正數表示向下偏移,負數表示向上偏移。默認值是 0。
ColumnOffset:區域偏移的列數(正數、負數或 0(零))。正數表示向右偏移,負數表示向左偏移。默認值是 0。

Resize
語法
Range.Resize(RowSize, ColumnSize)

RowSize:新區域中的行數。如果省略該參數,則該區域中的行數保持不變。
ColumnSize:新區域中的列數。如果省略該參數。則該區域中的列數保持不變。

Range(“a1”).Resizt(3, 2).Select
在這裏插入圖片描述
End
作用:返回一個 Range 對象,該對象代表包含源區域的區域尾端的單元格。等同於按鍵 End+
↑、End+ ↓、End+ ←或 End+ →。
語法
Range.End(Direction)
Direction:所要移至的方向。(包括以下四種情況)
xlDown 向下
xlToLeft 向左
xlToRight 向右
xlUp 向上

我們一般用end屬性獲取某列的最後一個非空單元格的行號
Cells(Rows.Count, “A”).End(xlUp).row

Address
作用:返回單元格地址。
MsgBox Range(“a1”).Address
在這裏插入圖片描述

Value
作用:表示單元格里面的內容,默認屬性,可省略

常用方法

Select
相當於我們點住鼠標左鍵圈選一個單元格區域
Range(“a1:a10”).Select

copy
複製內容到指定目的地的作用。
Range(“a1”).Copy Range(“b1”) ’ 將A1單元格內容複製到B1
Worksheets(1).Range(“a1”).Copy Worksheets(2).Range(“b1”)'將表1中A1單元格內容複製到表2單元格B1中

Union
將多個非連續區域連接起來成爲一個區域,從而可以實現對多個非連續區域一起進行操作。
Union(Worksheets(1).Range(“A1:D4”), Worksheets(1).Range(“E5:H8”)).Select
在這裏插入圖片描述
union方法一般結合find方法,在依次找到特定的單元格區域之後,聯合選擇然後做統一的操作。

Clear
清除單元格的內容
Sub test()
Range(“a:a”).Clear '清除A列單元格,包括數據內容和格式
Range(“a:a”).ClearContents '如果不想清楚單元格顏色等格式,只清除A列單元格內容用ClearContentsRange(“a:a”).ClearComments '清除批註
Range(“a:a”).ClearFormats’清除格式
End Sub

SpecialCells
在Excel中使用定位對話框可以選中工作表中特定的單元格區域,而在VBA中則使用SpecialCells方法。下面這個例子實現選中含有公式的單元格。

Sub test()
Dim rng As Range
Set rng = Sheet1.Range(“a1:x100”).SpecialCells(xlCellTypeFormulas)'選中A1:X100單元格區域中包含公式的單元格
rng.Select
End Sub
在這裏插入圖片描述
除了可以選中包含公式的單元格,我們還可以選中含有註釋的單元格區域、含有相同格式的單元格區域等等。

上述代碼中xlCellTypeFormulas替換爲下表中值即可
在這裏插入圖片描述
我們如果要僅複製篩選後的數據,就可以用
SpecialCells(xlCellTypeVisible).copy

如果判斷A1:B10單元格區域若存在空格,則隱藏所在行[A1:B10].SpecialCells(xlCellTypeBlanks).Rows.Hidden =True

整理空行工具
Sub s()
row1 = InputBox(“請輸入需要整理空行的列(英文)”, “提示信息”)
Range(row1 & “:” & row1).SpecialCells(xlCellTypeBlanks).Rows.Hidden = True
End Sub

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章