VBA之单元格选择方法及可用属性_第1页
VBA之单元格选择方法及可用属性_第2页
VBA之单元格选择方法及可用属性_第3页
VBA之单元格选择方法及可用属性_第4页
VBA之单元格选择方法及可用属性_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 如何选择当前工作表中的单元格?例如,可以使用下面的代码选择当前工作表中的单元格D5:ActiveSheet.Cells(5, 4).Select或:ActiveSheet.Range("D5").Select如何选择同一工作簿中其它工作表上的单元格?例如,要选择同一工作簿中另一工作表上的单元格E6,可以使用下面的代码:Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)或:Application.Goto (ActiveWorkbook.Sheets("Sheet2"

2、;).Range("E6")也可以先激活该工作表,然后再选择:Sheets("Sheet2").ActivateActiveSheet.Cells(6, 5).Select如何选择不同工作簿中的单元格?例如,要选择另一工作簿中的一个工作表上的单元格F7,可以使用下面的代码:Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)或:Application.Goto Workbooks("BOOK2.XLS").She

3、ets("Sheet1").Range("F7")也可以先激活该工作簿中的工作表,然后再选择:Workbooks("BOOK2.XLS").Sheets("Sheet1").ActivateActiveSheet.Cells(7, 6).Select如何选择当前工作表中的单元格区域?例如,要选择当前工作表中的单元格区域C2:D10,可以使用下面的代码:ActiveSheet.Range(Cells(2, 3), Cells(10, 4).Select或:ActiveSheet.Range("C2:D10&

4、quot;).Select或:ActiveSheet.Range("C2", "D10").Select如何选择同一工作簿中另一工作表上的单元格区域?例如,要选择同一工作簿中另一工作表上的单元格区域D3:E11,可以使用下面的代码:Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")或:Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3"

5、;, "E11")也可以先激活该工作表,然后再选择:Sheets("Sheet3").ActivateActiveSheet.Range(Cells(3, 4), Cells(11, 5).Select如何选择不同工作簿中工作表上的单元格区域?例如,要选择另一工作簿中某工作表上的单元格区域E4:F12,可以使用下面的代码:Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")或:Application.Go

6、to Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")也可以先激活该工作表,然后再选择:Workbooks("BOOK2.XLS").Sheets("Sheet1").ActivateActiveSheet.Range(Cells(4, 5), Cells(12, 6).Select如何在当前工作表中选择命名区域?例如,要选择当前工作表中名为“Test”的区域,可以使用下面的代码:Range("Te

7、st").Select或:Application.Goto "Test"如何选择同一工作簿中另一工作表上的命名区域?例如,选择同一工作簿中另一工作表上名为“Test”的区域,可使用下面的代码:Application.Goto Sheets("Sheet1").Range("Test")也可以先激活工作表,再选择:Sheets("Sheet1").ActivateRange("Test").Select如何选择不同工作簿中工作表上的命名区域?例如,要选择不同工作簿中工作表上名为“Test

8、”的区域,可使用下面的代码:Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")也可以先激活工作表,再选择:Workbooks("BOOK2.XLS").Sheets("Sheet2").ActivateRange("Test").Select如何选择与当前单元格相关的单元格?例如,要选择距当前单元格下面5行左侧4列的单元格,可以使用下面的代码:ActiveCell.Offset(5, -

9、4).Select要选择距当前单元格上方2行右侧3列的单元格,可以使用下面的代码:ActiveCell.Offset(-2, 3).Select注意:一定要保证当前单元格与所选单元格之间的距离在工作表范围内,否则会出错。如何选择与另一单元格(不是当前单元格)相关的单元格?例如,要选择距单元格C7下方5行右侧4列的单元格,可以使用下面的代码:ActiveSheet.Cells(7, 3).Offset(5, 4).Select或:ActiveSheet.Range("C7").Offset(5, 4).Select如何选择偏离指定区域的一个单元格区域?例如,要选择与名为“Te

10、st”的区域大小相同但在该区域下方4行右侧3列的一个区域,可以使用下面的代码:ActiveSheet.Range("Test").Offset(4, 3).Select如果该命名区域不在当前工作表中,可以先激活该工作表,然后再选择,如下面的代码:Sheets("Sheet3").ActivateActiveSheet.Range("Test").Offset(4, 3).Select如何选择一个指定的区域并扩展区域的大小?例如,要选择当前工作表中名为“Database”区域,然后将该区域向下扩展5行,可以使用下面的代码:Range(&

11、quot;Database").SelectSelection.Resize(Selection.Rows.Count + 5, Selection.Columns.Count).Select如何选择一个指定的区域,再偏离,然后扩展区域的大小?例如,选择名为“Database”区域下方4行右侧3列的一个区域,然后扩展2行和1列,可以使用下面的代码:Range("Database").SelectSelection.Offset(4, 3).Resize(Selection.Rows.Count + 2, Selection.Columns.Count + 1).S

12、elect如何选择两个或多个指定区域?例如,为了同时选择名为“Test”和“Sample”的两个区域,可以使用下面的代码:Application.Union(Range("Test"), Range("Sample").Select注意,这两个区域须在同一工作表中,如下面的代码:Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4")但Union方法不能处理不同工作表中的区域,可下面的代码:Set y = Application.U

13、nion(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4")将会出错。如何选择两个或多个指定区域的交叉区域?例如,要选择名为“Test”和“Sample”的两个区域的交叉区域,可以使用下面的代码:Application.Intersect(Range("Test"), Range("Sample").Select注意,两个区域必须在同一工作表中。= = = = = = = = = = = = = = = = = = = = = = = = =下面的示例使用了如下图所示的工作表。

14、 如何选择连续数据列中的最后一个单元格?例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码:ActiveSheet.Range("a1").End(xlDown).Select该代码使用在上面的工作表中,单元格A4被选择。如何选择连续数据列底部的空单元格?例如,要选择连续单元格区域下面的单元格,可以使用下面的代码:ActiveSheet.Range("a1").End(xlDown).Offset(1, 0).Select该代码使用在上面的工作表中,单元格A5被选择。如何选择某列中连续数据单元格区域?例如,要选择一列中的连续数据单元格区域,可以

15、使用下面的代码:ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown).Select或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).Address).Select该代码使用在上面的工作表中,单元格区域A1:A4将被选择。如何选择某列中非连续数据单元格区域?例如,要选择某列中非连续数据单元格区域,可以使用下面的代码:ActiveSheet.Range("a1

16、", ActiveSheet.Range("a65536").End(xlUp).Select或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536").End(xlUp).Address).Select该代码使用在上面的工作表中,单元格区域A1:A6将被选择。如何选择一个矩形(规则的)单元格区域?要选择围绕某单元格的一个矩形区域,可以使用CurrentRegion方法。CurrentRegion方法将选择四周被空行和空列围绕的区域,如下面的代码:ActiveShe

17、et.Range("a1").CurrentRegion.Select该代码使用在上面的工作表中,将选择单元格区域A1:C4。也可以使用下面的代码:ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Select或:ActiveSheet.Range("a1:" & ActiveSheet.Range("a1").End(xlDown).End(xlToRight).Address).Sel

18、ect若想选择单元格区域A1:C6,可使用下面的代码:lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol).Select或:lastCol = ActiveSheet.Range("a1").End(xlToRight).ColumnlastRow

19、= ActiveSheet.Cells(65536, lastCol).End(xlUp).RowActiveSheet.Range("a1:" & ActiveSheet.Cells(lastRow, lastCol).Address).Select= = = = = = = = = = = = = = = = = = = =如何选择多个不同长度的非连续列?例如,有下图所示的工作表:要同时选择A列和C列中的数据,即单元格区域A1:A3和C1:C6,可使用下面的代码:StartRange = "A1"EndRange = "C1&quo

20、t;Set a = Range(StartRange, Range(StartRange).End(xlDown)Set b = Range(EndRange, Range(EndRange).End(xlDown)Union(a, b).Select= = = = = = = = = = = = = = = = = = = =注:使用Application.Goto方法,如果指定另一工作表(不是当前工作表)中的指定区域,在Range属性中使用两个Cells属性时,则必须包括Sheets对象,如:Application.Goto Sheets("Sheet1").Range

21、(Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), Sheets("Sheet1").Cells(4, 5)= = = = = = = = = = = = = = = = = = = =在VBA中,Range 对象既可表示单个单元格,也可表示单元格区域。下面的内容说明了标识和处理Range对象最常用的方法。引用工作表上的所有单元格如果对工作表应用 Cells 属性时不指定索引号,该方法将返回代表工作表上所有单元格的 Range 对象。以下 Sub 过程清除活动工作簿中 Sheet

22、1 上的所有单元格的内容。Sub ClearSheet() Worksheets("Sheet1").Cells.ClearContentsEnd Sub使用 A1 表示法引用单元格和区域可使用 Range 属性引用 A1 引用样式中的单元格或单元格区域。下述子例程将单元格区域 A1:D5 的字体设置为加粗。Sub FormatRange() Workbooks("Book1").Sheets("Sheet1").Range("A1:D5") _ .Font.Bold = TrueEnd Sub下表演示了使用 Ra

23、nge 属性的一些 A1 样式引用。引用 含义Range("A1") 单元格 A1Range("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 行Ran

24、ge("A:A,C:C,F:F") A 、C 和 F 列引用行和列可用 Rows 属性或 Columns 属性来处理整行或整列。这两个属性返回代表单元格区域的 Range 对象。在下例中,Rows(1) 返回 Sheet1 上的第一行,然后将区域字体加粗。Sub RowBold() Worksheets("Sheet1").Rows(1).Font.Bold = TrueEnd Sub下表举例说明了使用 Rows 和 Columns 属性的一些行和列的引用。引用 含义Rows(1) 第一行Rows 工作表上所有的行Columns(1) 第一列Column

25、s("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使用索引号

26、引用单元格通过使用行列索引号,可用 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 Work

27、sheets("Sheet1").Cells(Counter, 3).Value = Counter Next CounterEnd Sub如果要同时更改某个区域中所有单元格的属性(或将方法应用于该区域中的所有单元格),建议使用 Range 属性。使用快捷表示法引用单元格可用方括号将 A1 引用样式或命名区域括起来,作为 Range 属性的快捷方式。这样就不必键入单词“Range”或使用引号了,如下例中所示。Sub ClearRange() Worksheets("Sheet1").A1:B5.ClearContentsEnd SubSub SetVal

28、ue() MyRange.Value = 30End Sub使用 Range 对象引用单元格如果将对象变量设置为 Range 对象,即可用变量名轻松地操作单元格区域。以下过程将创建对象变量 myRange,然后将活动工作簿中 Sheet1 上的区域 A1:D5 赋予该变量。随后的语句用该变量名称代替 Range 对象,以修改该区域的属性。Sub Random() Dim myRange As Range Set myRange = Worksheets("Sheet1").Range("A1:D5") myRange.Formula = "=R

29、AND()" myRange.Font.Bold = TrueEnd Sub引用命名区域用名称比用 A1 样式记号更容易标识单元格区域。若要命名选定的单元格区域,请单击编辑栏左端的名称框,键入名称,再按 Enter。引用命名区域以下示例引用名为“MyBook.xls”的工作簿中名为“MyRange”的区域。Sub FormatRange() Range("MyBook.xls!MyRange").Font.Italic = TrueEnd Sub以下示例引用名为“Report.xls”的工作簿中特定于工作表的区域“Sheet1!Sales”。Sub FormatS

30、ales() Range("Report.xlsSheet1!Sales").BorderAround Weight:=xlthinEnd Sub要选定命名区域,可使用 GoTo 方法,该方法将激活工作簿和工作表,然后选定该区域。Sub ClearRange() Application.Goto Reference:="MyBook.xls!MyRange" Selection.ClearContentsEnd Sub以下示例显示对于活动工作簿将如何编写与上例相同的过程。Sub ClearRange() Application.Goto Referenc

31、e:="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 cE

32、nd 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使用 Uni

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论