由于先前四讲的基础,本章节相对来说简单一点,现总结如下: 本章主要讲述了在vba中如何控制单元格以及单元格区域 一、单元格表示方法 1、Range方法 (1)range("a1") 单一单元格 (2)range("a1:b10")连续单元格 (3)range("a1:a10,b1:c10,e2:e10")不连续多单元格,相当于union,不连续单元格引进变量 Sub test() a = 1 b = 3 Range("a" & a & ":b" & b & ",e" & a & ":f" & b).Select End Sub 注意逗号也在引号内。如果写成这样: Range("a" & a & ":b" & b, "e" & a & ":f" & b).Select 他可是一个连续区域,其实质就是range("a1","c2").select他选定的是a1:c2连续区域 2、cells方法,cells表示单元格的集合,也就是所有的单元格,除此之外cells只能代表单一单元格,如果引入单元格区域就必须结合range解决 (1)cells(行号,列标) 单一单元格 (2)range(cells(irow,jcolumn),cells(mrow,ncolumn))他表示一个区域 3、其他 (1)offset(row,column)表示单元格偏移 一般表示如下: range.offset(row,column)表示单元格或者单元格区域range以其右上角单元格为定点,向下偏移row行,向右偏移column列,实质上range的维数不变,只是发生了一些相对位移,右上角单元格也发生了位移 (2)resize(row,column)表示重新定义单元格的维数,维数发生变化,而右上角单元格不变,如: Sub test6() 'a1:b2区域向下偏移3行,向右偏移1列,即b4:c5,实质上是移动区域右上角单元格,最终返回结果维数不变 Range("a1:b2").Offset(3, 1).Select 'a1:c3区域重新定义区域为4行5列,即a1:e4,实质上区域右上角不变,而维数改变,刚好和offset相反 Range("a1:c3").Resize(4, 5).Select 'a1:b2重新定义维数,行数在原来的基础上+2,列数在原来的基础上加4,即返回4行6列,也就是a1:f4 Range("A1:B2").Resize(Range("A1:B2").Rows.Count + 2, Range("A1:B2").Columns.Count + 4).Select End Sub (3)union(range1,range2)表示range1和range2的合并区域,取其并集 (4)intersect(range1,range2)表示range1和range2的公共区域,取其交集 Sub test8() Dim Rng1 As Range Dim Rng2 As Range Dim UAimRng As Range Dim SAimRng As Range Dim Msg As String Set Rng1 = [a1:c7] Set Rng2 = [b5:e11] Set UAimRng = Union(Rng1, Rng2) '注意,如果不存在交集,则返回错误,故此处用on error resume next On Error Resume Next Set SAimRng = Intersect(Rng1, Rng2) Msg = "区域" & Rng1.Address & "和区域" & Rng2.Address & "的合并区域为:" & UAimRng.Address Msg = Msg & Chr(13) & Chr(13) & Chr(10) Msg = Msg & "区域" & Rng1.Address & "和区域" & Rng2.Address & "的公共区域为:" & SAimRng.Address MsgBox Msg End Sub (5)usedrange表示已使用过的单元格,返回一个矩形区域 二、零碎小知识 1、activesheet表示活动工作表 2、worksheets("sheet1")特指sheet1工作表,其中sheet1为工作表的名称 3、sheet1无论如何命名sheet1和sheets(1)都表示第一个工作表,工作表标签从左向右依次为第一个工作表、第二个工作表.... 4、specialcells类似编辑定位功能,可以在excel中按ctrl+g编辑定位查看定位内容
n6XnwLdx.rar
(11.5 KB, 下载次数: 38)
|