




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VBA Excel 如何引用单元格和区域 使用 Visual Basic 的普通任务是指定单元格或单元格区域,然后对该单元格或单元格区域进行一些操作,如输入公式或更改格式。通常用一条语句就能完成操作,该语句可标识单元格,还可更改某个属性或应用某个方法。在 Visual Basic 中,Range 对象既可表示单个单元格,也可表示单元格区域。下列主题说明了标识和处理 Range 对象最常用的方法。用 A1 样式记号引用单元格和单元格区域可使用 Range 属性来引用 A1 引用样式中的单元格或单元格区域。下述子程序将单元格区域 A1:D5 的字体设置为加粗。Sub FormatRange() Workbooks(Book1).Sheets(Sheet1).Range(A1:D5) _ .Font.Bold = TrueEnd Sub 下表演示了使用 Range 属性的一些 A1 样式引用。引用 含义 Range(A1) 单元格 A1 Range(A1:B5) 从单元格 A1 到单元格 B5 的区域 Range(C5:D9,G9:H16) 多块选定区域 Range(A:A) A 列 Range(1:1) 第一行 Range(A:C) 从 A 列到 C 列的区域 Range(1:5) 从第一行到第五行的区域 Range(1:1,3:3,8:8) 第 1、3 和 8 行 Range(A:A,C:C,F:F) A 、C 和 F 列 用编号引用单元格通过使用行列编号,可用 Cells 属性来引用单个单元格。该属性返回代表单个单元格的 Range 对象。下例中,Cells(6,1) 返回 Sheet1 上的单元格 A6,然后将 Value 属性设置为 10。Sub EnterValue() Worksheets(Sheet1).Cells(6, 1).Value = 10End Sub因为可用变量替代编号,所以 Cells 属性非常适合于在单元格区域中循环,如下例所示。Sub CycleThrough() Dim Counter As Integer For Counter = 1 To 20 Worksheets(Sheet1).Cells(Counter, 3).Value = Counter Next CounterEnd Sub注意 如果要同时更改某一单元格区域中所有单元格的属性或对其应用方法,可使用 Range 属性。有关详细信息,请参阅用 A1 样式记号引用单元格。引用行和列可用 Rows 属性或 Columns 属性来处理整行或整列。这两个属性返回代表单元格区域的 Range 对象。下例中,用 Rows(1) 返回 Sheet1 上的第一行,然后将单元格区域的 Font 对象的 Bold 属性设置为 True。Sub RowBold() Worksheets(Sheet1).Rows(1).Font.Bold = TrueEnd Sub下表举例说明了使用 Rows 和 Columns 属性的一些行和列的引用。引用 含义 Rows(1) 第一行 Rows 工作表上所有的行 Columns(1) 第一列 Columns(A) 第一列 Columns 工作表上所有的列 若要同时处理若干行或列,请创建一个对象变量并使用 Union 方法,将对 Rows 属性或 Columns 属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。Sub SeveralRows() Worksheets(Sheet1).Activate Dim myUnion As Range Set myUnion = Union(Rows(1), Rows(3), Rows(5) myUnion.Font.Bold = TrueEnd Sub用快捷记号引用单元格可用方括号将 A1 引用样式或命名区域括起来,作为 Range 属性的快捷方式。这样就不必键入单词“Range”或使用引号,如下例所示。Sub ClearRange() Worksheets(Sheet1).A1:B5.ClearContentsEnd SubSub SetValue() MyRange.Value = 30End Sub引用命名区域用名称比用 A1 样式记号更容易标识单元格区域。若要命名选定的单元格区域,请单击编辑栏左端的名称框,键入名称,再按 Enter。引用命名区域下例引用了名为“MyBook.xls”的工作簿中的名为“MyRange”的单元格区域。Sub FormatRange() Range(MyBook.xls!MyRange).Font.Italic = TrueEnd Sub下例引用名为“Report.xls”的工作簿中的特定工作表单元格区域“Sheet1!Sales”。Sub FormatSales() Range(Report.xlsSheet1!Sales).BorderAround Weight:=xlthinEnd Sub若要选定命名区域,请用 GoTo 方法,该方法将激活工作簿和工作表,然后选定该区域。Sub ClearRange() Application.Goto Reference:=MyBook.xls!MyRange Selection.ClearContentsEnd Sub下例显示对于活动工作簿将如何编写相同的过程。Sub ClearRange() Application.Goto Reference:=MyRange Selection.ClearContentsEnd Sub在命名区域中的单元格上循环下例用 For Each.Next 循环语句在命名区域中的每一个单元格上循环。如果该区域中的任一单元格的值超过 limit 的值,就将该单元格的颜色更改为黄色。Sub ApplyColor() Const Limit As Integer = 25 For Each c In Range(MyRange) If c.Value Limit Then c.Interior.ColorIndex = 27 End If Next cEnd Sub相对于其他单元格来引用单元格处理相对于另一个单元格的某一单元格的常用方法是使用 Offset 属性。下例中,将位于活动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下划线格式。Sub Underline() ActiveCell.Offset(1, 3).Font.Underline = xlDoubleEnd Sub注意 可录制使用 Offset 属性(而不是绝对引用)的宏。在“工具”菜单上,指向“宏”,再单击“录制新宏”,然后单击“确定”,再单击录制宏工具栏上的“相对引用”按钮。若要在单元格区域中循环,请在循环中将变量与 Cells 属性一起使用。下例以 5 为步长,用 5 到 100 之间的值填充第三列的前 20 个单元格。变量 counter 用作 Cells 属性的行号。Sub CycleThrough() Dim counter As Integer For counter = 1 To 20 Worksheets(Sheet1).Cells(counter, 3).Value = counter * 5 Next counterEnd Sub用 Range 对象引用单元格如果将对象变量设置为 Range 对象,即可用变量名方便地操作单元格区域。下述过程创建了对象变量 myRange,然后将活动工作簿中 Sheet1 上的单元格区域 A1:D5 赋予该变量。随后的语句用该变量代替该区域对象,以修改该区域的属性。Sub Random() Dim myRange As Range Set myRange = Worksheets(Sheet1).Range(A1:D5) myRange.Formula = =RAND() myRange.Font.Bold = TrueEnd Sub引用工作表上的所有单元格如果对工作表应用 Cells 属性时不指定编号,该属性将返回代表工作表上所有单元格的 Range 对象。下述 Sub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容。Sub ClearSheet() Worksheets(Sheet1).Cells.ClearContentsEnd Sub引用多个单元格区域使用适当的方法可以很容易地同时引用多个单元格区域。可用 Range 和 Union 方法引用任意组合的单元格区域;用 Areas 属性可引用工作表上选定的一组单元格区域。使用 Range 属性通过在两个或多个引用之间放置逗号,可使用 Range 属性来引用多个单元格区域。下例清除了 Sheet1 上三个单元格区域的内容。Sub ClearRanges() Worksheets(Sheet1).Range(C5:D9,G9:H16,B14:D18). _ ClearContentsEnd Sub命名区域使得用 Range 属性处理多个单元格区域更为容易。下例可在三个命名区域处于同一工作表时运行。Sub ClearNamed() Range(MyRange, YourRange, HisRange).ClearContentsEnd Sub使用 Union 方法用 Union 方法可将多个单元格区域组合到一个 Range 对象中。下例创建了名为 myMultipleRange 的 Range 对象,并将其定义为单元格区域 A1:B2 和 C3:D4 的组合,然后将该组合区域的字体设置为加粗。Sub MultipleRange() Dim r1, r2, myMultipleRange As Range Set r1 = Sheets(Sheet1).Range(A1:B2) Set r2 = Sheets(Sheet1).Range(C3:D4) Set myMultipleRange = Union(r1, r2) myMultipleRange.Font.Bold = TrueEnd Sub使用 Areas 属性可用 Areas 属性引用选定的单元格区域或多块选定区域中的区域集合。下述过程计算选定区域中的块数目,如果有多个块,就显示一则警告消息。Sub FindMultiple() If Selection.Areas.Count 1 Then MsgBox Cannot do this to a multiple selection. End IfEnd Sub VBA EXCEL单元格 遍历方法方法1:SpecialCells方法参阅应用于特性返回一个对象,该对象代表与指定类型及值相匹配的所有单元格。Range对象。expression.SpecialCells(Type, Value)expression必需。该表达式返回“应用于”列表中的一个对象。Type类型,必需。要包含的单元格。XlCellType可为以下XlCellType常量之一。xlCellTypeAllFormatConditions任意格式单元格xlCellTypeAllValidation 含有验证条件的单元格 (sheet1.circleinvalid / clearcircle )Range.validation.value=false用于判断数据有效性是否符合xlCellTypeBlanks空单元格xlCellTypeComments 含有注释的单元格xlCellTypeConstants 含有常量的单元格xlCellTypeFormulas 含有公式的单元格xlCellTypeLastCell 使用区域中最后的单元格xlCellTypeSameFormatConditions含有相同格式的单元格xlCellTypeSameValidation含有相同验证条件的单元格xlCellTypeVisible 所有可见单元格ValueVarian类型,可选。如果Type为xlCellTypeConstants或xlCellTypeFormulas之一, 此参数可用于确定结果中应包含哪几类单元格。将某几个值相加可使此方法返回多种类型的单元格。默认情况下,将选定所有常量或公式,对其类型不加区别。可为以下 常量之一:XlSpecialCellsValue可为以下XlSpecialCellsValue常量之一。xlErrorsxlLogicalxlNumbersxlTextValues示例:ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate遍历方法: With Workbooks(WORKBOOKNAME).Sheets(SHEETNAME).Activate ActiveSheet.Cells.SpecialCells(xlCellTypeConstants).Select For Each oCell In Selection . Next方法2:Sheet1.UsedRange方法UsedRange的作用(1) 返回工作表中已使用区域的行数或列数 一般写法为.UsedRange.Rows.Count和.UsedRange.Columns.Count。 语句Activesheet.UsedRange.Rows.count返回当前工作表中已使用单元格区域的行数。 Activesheet.UsedRange.Rows.count 语句Activesheet.UsedRange.Columns.count返回当前工作表中已使用单元格区域的列数。 Activesheet.UsedRange.Columns.count(2) 返回工作表中已使用单元格区域的地址 一般写法为.UsedRange.Address 语句Activesheet.UsedRange.Address 返回当前工作表已使用单元格区域的地址。 Activesheet.UsedRange.Address 返回值:$A$1:$D$20(3) 设置工作表中已使用单元格区域对象,并进行引用或操作。 Set cellRange=Worksheets(“Sheet1”).UsedRange 设置已用单元格区域并赋值给变量 RowNum=cellRange.Rows.Count 已用单元格区域的行数 ColNum=cellRange.Columns.Count 已用单元格区域的列数遍历方法: Dim rng As Range For Each rng In Sheet1.UsedRange . Next rng单元格作为VBA入门的一个必需掌握的概念,单元格的引用有多种方式,现 在根据自己的经验及参考相关的书本来整理涉及单元格引用的知识。最近发现自己对单元格方面的知识并没有完全掌握,收到了罗版的VBA自学宝典,结合以前的那些相关资料,一边学习,一边把相关的知识点记录下来。一、选取所有单元格。 1. Sub 选取全部单元格一() 2. Cells.Select 3. End Sub 复制公式 或代码注:cells是所有单元格 的集合。 1. Sub 选取全部单元格二() 2. Rows.Select 3. End Sub 复制公式 或代码而Rows则是所有行的集合。 1. Sub 选取全部单元格三() 2. Columns.Select 3. End Sub 复制公式 或代码而columns则是所有列的集合。无论是所有单元格的集合,还是所有行或列的集合选取,都是工作表中全选所有单元格的表示方式。二、Range引用来选取单元格1、Range引用单元格方式1:Range(单元格地址)例如:Range(A1):表示单元格A1,注意:单元格地址要加双引号值得注意的是:双引号的输入必须是在半角状态下输入的,否则会出现错误。单元格地址里面的单元格地址不区分相对引用和绝对引用的,无论你是使用Range(A1)、Range($A1)、 Range($A$1)还是Range(A$1),都是引用通一个单元格。一般为了简化作用,直接用Range(A1)这种形式来表示引用单元格。2、Range引用单元格方式2:Range(单元格区域)在VBA数组中,经常遇到arr=Range(A1:D10)这种数组赋予方式,而里面出现了Range(单元格区域)的这种单元格区域引用。从这个最常见的例子中,我们可以发现,A1:D10代表了一个单元格区域的引用,其中A1是该区域的左上角上面的单元格,而D10则是该区域右下角下 面的单元格。但大家可以从下面两个例子来发现: 1. Sub q1() 2. Range(A1:D10).Select 3. End Sub 4. Sub q2() 5. Range(D10:A1).Select 6. End Sub 复制公式 或代码这两个小例子得到的结果都是选取A1:D10这个单元格区域 值得大家注意的,以下的这些通过索引号作为参数的引用,都是比较陌生的。比如以下这个小例子:例子1:1. Sub T1() 2. Range(B2:E6)(1).Select 3. End Sub 复制公式 或代码注释:该例子代表了选取B2:E6区域中的第一个单元格的,即选取B2例子2: 1. Sub T2() 2. Range(B2:E6)(3).Select 3. End Sub 复制公式 或代码注:该例子代表选取B2:E6区域中的第三个单元格,即D2,而单元格的区域的读取一般是从左到右,然后再从上到下进行读取 的,故该区域的前3个单元格分别是B2、C2、D2,而第3个单元格就是为D2例子3: 1. Sub T3() 2. Range(B2:E6)(3.5).Select 3. End Sub 复制公式 或代码注意:当里面的索引号为小数时,excel会对其进行四舍五入,比如例子3中的3.5,excel会把它转换为4,故例子3 中的代表是B2:E6区域的第4个单元格选取,即选取E2例子4: 1. Sub T4() 2. Range(B2:E6)(3.2).Select 3. End Sub 复制公式 或代码而例子4中,因为四舍五入的关系,得到的结果是选取该区域的第3个单元格,即选取D2例子5: 1. Sub F1() 2. Range(B2:E6)(1, 4).Select 3. End Sub 复制公式 或代码注:在例子5中,Range(单元格区域)(行号,列号),所代表的是选取该单元格区域中第几行与第几列交叉的那个单元 格,而例子5中代表是选取B2:E6区域中的第1行第4列的单元格,在该区域中,所符合条件的单元格为E2。值得关注的是,(行号,列号)里面的参数可以使用0或者负数。当行号的参数为0的时候,则向该区域的左上角单元格向上偏移一个单位,当列号为0时候,则向该区域左上角单元格向左偏移一个单位;如果参数是负数的时候, 在原来的基础上追加偏移量。具体请看例子6、7: 1. Sub F1() 2. Range(B2:E6)(0, 0).Select 3. End Sub 复制公式 或代码例子6中是选取了A1单元格,即B2:E6区域左上角单元格B2分别向上偏移一行,向左偏移一列,所得到的单元格为A1例子7: 1. Sub F1() 2. Range(C3:E6)(-1, -1).Select 3. End Sub 复制公 式或代码例子7中代表了C3:E6区域的左上角单元格C3分别向上偏移两行,向左偏移两列,所得到的单元格为A13、Range(列标 & 行数)的单元格引用方式:例子7: 1. Sub Y() 2. Range(B & 10).Select 3. End Sub 复制公 式或代码从这个最简单的例子,一个最常见的单元格引用方式。注意:列标需要加上双引号,并且要用到&把列标和行号连接 起来。经常用到的一个例子:往A1:A100里面分别填充1到100等这100个数字 1. Sub a() 2. Dim i As Integer 3. For i = 1 To 100 4. Range(A & i) = i 5. Next i 6. End Sub 复制公 式或代码从中可以看到这种单元格方式引用的作用。4、Range(定义名称)的单元格引用:首先在excel2007中,公式定义名称把A1:A100区域定义为数字。便可以使用这种方式,具体请看以下例子: 1. Sub B() 2. Range(数字).Select 3. End Sub 复制公 式或代码注:A1:A100这个区域已经定义名称为数字,该代码表示选取A1:A100单元格区域注意:定义名称也必须添加双引号,并且是半角下输入的。5、Range方式引用多个区域:前面详细说了:Range(A1:B10)这样类似的区域引用方式,但值得注意的是,那只是连续区域的引用。还有一些不连续的区域,则需要在区域中间 加,号比如以下例子: 1. Sub 多区域引用() 2. Range(A1,C1,D3:E8).Select 3. End Sub 复制公 式或代码注意:A1,C1,D3:E8这个为不连续的区域,中间需要用,号隔开,并且不连续的区域直接还是要用双引号作为标 记,这个代码表示选取A1、C1、D3:E8。这里主要要关注,号的使用。但是,该方式引用有一个限制:参数的长度不能超过256个字符,否则产生运行错误。连接上面那个例子,给出另外一种使用方式: 1. Sub 多区域引用2() 2. Union(Range(A1), Range(C1), Range(D3:E8).Select 3. End Sub 复制公 式或代码该例子中主要使用了union 来进行连接,这种方式得到的结果和上面的那个例子所得到的结果是一样的。这两种方式,都是对不连续区域进行连接,相对比,还是上面的那个例子比较简洁。 Range嵌套使用主要语法:Range(cell1,cell2),其中cell1和cell2是必选参数。Cell1代表指定区域目标的左上角单元格,Cell2代表指定区域目标右下角单元格。具体看例子1. Sub a() 2. Range(Range(A1), Range(E4).Select 3. End Sub 复制公式或代码注:该例子表示选取A1:E4区域而下面这个例子:1. Sub B() 2. Range(Range(A1:A3), Range(E2).Select 3. End Sub 复制公式或代码注:上面这个例子表示选取A1:E3区域。注意不是选取A1:E2的区域。VBA会从两个区域中最左上角的单元格作为新的区域作为参照起点, 再取两个区域所跨越的最大行作为新的区域行数,取两个区域跨越的最大列作为新区域的列数。与Range相关的选取整行或整列:1. Sub a() 2. Range(A:A).Select 3. End Sub 复制公 式或代码上面这个例子,表示选取A列,注意,无论是A:A或者是A:a,代表的都是选取A列,里面不区分大小写。另外表示选取第一列,还可以用下面的代码: 1. Sub yy() 2. Columns(1).Select 3. End Sub 复制公 式或代码1. Sub aa() 2. Columns(A).Select 3. End Sub 复制公 式或代码1. Sub aa1() 2. Columns(A:A).Select 3. End Sub 复制公 式或代码而选取第一行可以用下面的例子: 1. Sub b() 2. Range(1:1).Select 3. End Sub 复制公 式或代码而选取第一行,还可以使用下面的代码: 1. Sub yy1() 2. Rows(1).Select 3. End Sub 复制公 式或代码1. Sub aa2() 2. Rows(1).Select 3. End Sub 复制公 式或代码1. Sub aa3() 2. Rows(1:1).Select 3. End Sub 复制公 式或代码三、Cells引用单元格1、Cells(行数,列数)请看下面例子: 1. Sub a() 2. Cells(1, 2).Select 3. End Sub 复制公式 或代码该例子表明选取B1单元格2、Cellls(行数,列标)请看例子: 1. Sub ba() 2. Cells(2, B).Select 3. End Sub 复制公式 或代码该例子中表明选取B2 单元格,但该方法引用单元格永远只能引用一个,并且不能引用区域。3、Range.cells(横坐标,纵坐标)这种方式引用单元格是以其父对象Range左上角单元格作为参照系,向下累加的坐标系数来指定单元格。请看下例: 1. Sub aa() 2. Range(B2:F10).Cells(2, 2).Select 3. End Sub 复制公式 或代码该代码表示B2:F10单元格中横坐标为2、纵坐标为2的单元格C3,该参照是以B2为基准的。另外,cells里面可以使用小数,不过VBA会对其进行四舍五入再计算,具体看下例: 1. Sub au() 2. Range(B2:F10).Cells(3.8, 3.4).Select 3. End Sub 复制公式 或代码该代码表示B2:F10单元格中横坐标为4、纵坐标为3的单元格D5。4、Range.cells(索引号)当使用单个索引号作为参数时,它表示父对象中的一个索引子集。其编号方式是先行后列、先左后右。请看下例: 1. Sub au() 2. Range(B2:F10).Cells(3).Select 3. End Sub 复制公式 或代码该例子表示B2:F10区域中第3个单元格D2。这种方式比较少见,也比较少用。四、A1方式引用单元格,该单元格表示的简化方法。单元格的简化表达方式:单元格地址表示单元格A1,简写为A1 注意:单元格地址外是中括号(),单元格地址不能使用双引号。 1. Sub 选取单元格A1的方法() 2. A1.Select 3. End Sub 复制公式 或代码该例子表示选取单元格A1。另外,该方式可以用来表示选取单元格区域: 1. Sub 选取() 2. A1:D10.Select 3. End Sub 复制公式 或代码表示选取A1:D10区域。而之间可以使用逗号开选取不连续单元格,具体请看下例: 1. Sub 选取() 2. A1:D10,H1,H10.Select 3. End Sub 复制公式 或代码表示选取A1:D10、H1、H10等区域的单元格。从该例子看出,A1的方式是最简单的写法。 在单元格插入公式应该用单元格的formula属性,在一些场合formla可以省略如:sub 插入公式()range(d4).formla = =d3-d2 range(d4)= =d3-d2 也可以实现end sub利用formla属性也可以提取公式,例如sub 获取单元格公式() msgbox 单元格E4的公式为: & range(e4).formla,vbinformation,获取公式end sub在VBA编辑时,在插入单元格公式使可以插入excel内置公式。如 min max sum等等公式都可以sub 选取全部单元格()cells.selectend subsub 选取全部单元格()rows.selectend subsub 选取全部单元格()columns.selectend sub单元格的表示方法可以有很多种,例如要表示单元格B10可以用:cells(10,2)b10range(b10)cells(10,b)cells(B & 10)cells(9*列数+2) 如2003列数为256列,则B10的表示方法为cells(2036)要清楚的表示单元格,如引用同一工作薄内不同工作表的单元格,则要表示为worksheets(工作表名称).range(单元格地址)要引用不同工作薄的单元格则要表示为workbooks(工作薄名称).sheets(工作表名称).range(单元格地址)但是在选取单元格时,如果要select非select工作表的单元格,例:sub 选取非活动工作表的单元格() worksheets(sheet2).range(a10).selectend sub则将出现错误。正确表示方法为sub 选取非活动工作表的单元格() worksheets(sheet2).select range(a10).selectend sub选取区域 sub 选取区域() range(a3:b6).select range(a3,b6).select range(cells(1,3),cells(2,6).select a3:b6.select 都表示选取区域a3:b6end subsub 选取某行()range(6:6).select rows(6).select end subsub 选取多行() range(6:9).select rows(6:9).selectend subsub 选取某列()columns(a:a).select columns(1).selectend subsub 选取不连续区域() range(b2:b4,c4,b6:d8,f8:g9).select union(range(b2:b4),range(c4),range(b6:d8),range(f8:g9).selectend subsub 选取相邻区域() range(b3).currentregion.select currentregion属性也作活动区域,其会被空行或者空列分割开来。end subsub 选取特殊区域() range(单元格区域).specialcells(xlcelltype常量)end subspecialells属性说明表达式.SpecialCells(Type, Value)表达式 一个代表 Range 对象的变量。参数名称 必选/可选 数据类型 说明 Type 必选 XlCellType 要包含的单元格。 Value 可选 Variant 如果 Type 为 xlCellTypeConstants 或 xlCellTypeFormulas,则该参数可用于确定结果中应包含哪几类单元格。将这些值相加可使此方法返回多种类型的单元格。默认情况下,将选择所有常量或公式,无论类型如何。 xlcelltype常量说明xlcelltype常量 说明 值xlCellTypeAllFormatConditions :任意格式单元格 -4172 xlCellTypeAllValidation: 含有验证条件的单元格 -4174 xlCellTypeBlanks: 空单元格 4 xlCellTypeComments: 含有注释的单元格 -4144 xlCellTypeConstants: 含有常量的单元格 2 xlCellTypeFormulas: 含有公式的单元格 -4123 xlCellTypeLastCell: 已用区域中的最后一个单元格 11 xlCellTypeSameFormatConditions:含有相同格式的单元格 -4173 xlCellTypeSameValidation: 含有相同验证条件的单元格 -4175 xlCellTypeVisible: 所有可见单元格 12 XlSpecialCellsValue 常量 值 xlErrors 16 xlLogical 4 xlNumbers 1 xlTextValues 2对于单元格的偏移,可使用offset属性,如cells(a1).offset(1,2) 表示的是“c2”单元格对于地址的引用属性,有绝对引用和相对引用之分。在excel中快捷键是F4。在VBA中使用address属性表示是否绝对引用,格式为单元格对象.address(行是(1)否(0)绝对引用,列是(1)否(0)绝对引用)如:range(a2).address(0,0) 表示“a2”单元格range(a2).address(1,0) 表示“$A2”单元格range(a2).address(0,1) 表示“A$2”单元格range(a2).address(1,1) 表示 $A$2单元格range(a2).offset(1,1).address(1,1) 表示$B$3单元格range(B3).offset(-1,-1).address(0,1) 表示A$2单元格默认时,range(a2).address 等同于range(a2).address(1,1) 表示$A$2单元格单元格的计数使用的是count属性,实际上共走表或者工作薄的计数都使用的count属性。表示方法为:range(计数区域).count 表示“计数区域”的单元格个数(包括空单元格)在函数中 =count(计数区域) 表示的是计数区域的单元格个数而 =counta(计数区域) 则表示的是计数区域内的非空单元格个数在VBA中counta的表示方法为 表达式.counta(计数区域(或者称作计数条件) 例如 application.counta(columns(a) 表示A列非空单元格个数。 application.counta(range(a1:h23) ) 表示统计区域a1:h23的非空单元格个数如要统计非selection工作表的某区域非空单元格个数,则用application.worksheetfunction.counta(sheets(sheetName).Range(a1:H23)counta的详细表达式为:表达式.CountA(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)表达式 一个代表 WorksheetFunction 对象的变量。设置字体格式Sub 设置字体格式()Range(a1).Select With Selection .Font.Name = 黑体 设置字体名称为黑体 .Font.Size = 16 设置字体大小为16 .Font.ColorIndex = 5 设置字体颜色为蓝色(2010) .Interior.ColorIndex = 39 设置单元格填充色为紫色(2010) End WithEnd Sub为表格添加边框Sub 添加边框()Dim c As Range Set c = Range(a1:g12) With c.Borders(xlInsideVertical) 设置垂直边框(附:常量说明) .LineStyle = xlContinuous 设置垂直边框线为实线(线条样式) .Weight = xlThin 设置垂直边框线为细线(线条粗细) .ColorIndex = 39 设置颜色为紫色 End With With c.Borders(xlInsideHorizontal) .LineStyle = xlDash 设置水平边框线为虚线 .Weight = xlThin .ColorIndex = 39 End With c.BorderAround xlContinuous, xlMedium, 39
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年实战砌筑工职业技能鉴定试卷
- 2025年钳工(技师)工艺设计考试试卷
- 广东海洋大学《架构与开发》2024-2025学年第一学期期末试卷
- 陕西财经职业技术学院《编辑学概论》2024-2025学年第一学期期末试卷
- 海南外国语职业学院《物联网中间件技术》2024-2025学年第一学期期末试卷
- 海南热带海洋学院《工业机器人建模与仿真》2024-2025学年第一学期期末试卷
- 2025年炼油工艺中级操作实践模拟题集与答案详解
- 巴音郭楞职业技术学院《劳动经济学》2024-2025学年第一学期期末试卷
- 2025年汽车维修工技能测试题库
- 辽宁财贸学院《水污染控制工程(下)》2024-2025学年第一学期期末试卷
- GB/T 9869.2-2025橡胶用硫化仪测定硫化特性第2部分:圆盘振荡硫化仪
- 保密教育培训课件内容
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案
- 贵州省遵义市红花岗区小升初数学试卷
- 贵州省新型农村社会养老保险经办规程
- 高压氧治疗相关知识
- 外科学麻醉专题知识讲座培训课件
- 课程设计与评价
- 广东省中山市20222022学年下学期期末考试八年级英语试卷
- 霍尔电流传感器实训台课件
- 2023年国药控股股份有限公司招聘笔试题库及答案解析
评论
0/150
提交评论