天天看點

VBA之Range對象在Excel單元格指派示例

單元格指派示例

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

示例一

sub test1()

worksheets("sheet1").range("a5").value = 22

msgbox "工作表sheet1内單元格a5中的值為" _

& worksheets("sheet1").range("a5").value

end sub

示例二

sub test2()

worksheets("sheet1").range("a1").value = _

worksheets("sheet1").range("a5").value

msgbox "現在a1單元格中的值也為" & _

示例三

sub test3()

msgbox "用公式填充單元格,本例為随機數公式"

range("a1:h8").formula = "=rand()"

示例四

sub test4()

worksheets(1).cells(1, 1).value = 24

msgbox "現在單元格a1的值為24"

示例五

sub test5()

msgbox "給單元格設定公式,求b2至b5單元格區域之和"

activesheet.cells(2, 1).formula = "=sum(b1:b5)"

示例六

sub test6()

msgbox "設定單元格c5中的公式."

worksheets(1).range("c5:c10").cells(1, 1).formula = "=rand()"

單元格引用示例

sub random()

dim myrange as range

'設定對單元格區域的引用

set myrange = worksheets("sheet1").range("a1:d5")

'對range對象進行操作

myrange.formula = "=rand()"

myrange.font.bold = true

示例說明:可以設定range對象變量來引用單元格區域,然後對該變量所代表的單元格區域進行操作。

清除單元格示例

清除單元格中的内容(clearcontents方法)

sub testclearcontents()

msgbox "清除指定單元格區域中的内容"

worksheets(1).range("a1:h8").clearcontents

清除單元格中的格式(clearformats方法)

sub testclearformats()

msgbox "清除指定單元格區域中的格式"

worksheets(1).range("a1:h8").clearformats

清除單元格中的批注(clearcomments方法)

sub testclearcomments()

msgbox "清除指定單元格區域中的批注"

worksheets(1).range("a1:h8").clearcomments

清除單元格中的全部,包括内容、格式和批注(clear方法)

sub testclear()

msgbox "徹底清除指定單元格區域"

worksheets(1).range("a1:h8").clear

其他示例

range和cells的用法

sub test()

'設定單元格區域a1:j10的邊框線條樣式

with worksheets(1)

.range(.cells(1, 1), _

.cells(10, 10)).borders.linestyle = xlthick

end with

示例說明:可用 range(cell1, cell2) 傳回一個 range 對象,其中cell1和cell2為指定起始和終止位置的range對象。

選取單元格區域(select方法)

sub testselect()

'選取單元格區域a1:d5

worksheets("sheet1").range("a1:d5").select

基于所選區域偏離至另一區域(offset屬性)

sub testoffset()

worksheets("sheet1").activate

selection.offset(3, 1).select

示例說明:可用offset(row, column)(其中row和column為行偏移量和列偏移量)傳回相對于另一區域在指定偏移量處的區域。如上例標明位于目前標明區域左上角單元格的向下三行且向右一列處單元格區域。

選取距目前單元格指定行數和列數的單元格

sub activecelloffice()

msgbox "顯示距目前單元格第3列、第2行的單元格中的值"

msgbox activecell.offset(3, 2).value

調整區域的大小(resize屬性)

sub resizerange()

dim numrows as integer, numcolumns as integer

numrows = selection.rows.count

numcolumns = selection.columns.count

selection.resize(numrows + 1, numcolumns + 1).select

示例說明:本示例調整所選區域的大小,使之增加一行一列。

選取多個區域(union方法)

sub testunion()

dim rng1 as range, rng2 as range, mymultiarearange as range

set rng1 = range("a1:b2")

set rng2 = range("c3:d4")

set mymultiarearange = union(rng1, rng2)

mymultiarearange.select

示例說明:可用 union(range1, range2, ...) 傳回多塊區域,即該區域由兩個或多個連續的單元格區域所組成。如上例建立由單元格區域a1:b2和c3:d4組合定義的對象,然後標明該定義區域。

激活已選區域中的單元格

sub activaterange()

msgbox "選取單元格區域b2:d6并将c4選中"

activesheet.range("b3:d6").select

range("c5").activate

選取指定條件的單元格(specialcells方法)

sub selectspecialcells()

msgbox "選擇目前工作表中所有公式單元格"

activesheet.cells.specialcells(xlcelltypeformulas).select

選取矩形區域(currentregion屬性)

'選取包含目前單元格的矩形區域

'該區域周邊為空白行和空白列

sub selectcurrentregion()

msgbox "選取包含目前單元格的矩形區域"

activecell.currentregion.select

選取目前工作表中已用單元格(usedrange屬性)

'選取目前工作表中已使用的單元格區域

sub selectusedrange()

msgbox "選取目前工作表中已使用的單元格區域" _

& vbcrlf & "并顯示其位址"

activesheet.usedrange.select

msgbox activesheet.usedrange.address