天天看点

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