使用VBA代码确定、激活、选择单元格区域_第1页
使用VBA代码确定、激活、选择单元格区域_第2页
使用VBA代码确定、激活、选择单元格区域_第3页
使用VBA代码确定、激活、选择单元格区域_第4页
使用VBA代码确定、激活、选择单元格区域_第5页
已阅读5页,还剩25页未读, 继续免费阅读

下载本文档

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

文档简介

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

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

3、ctivateActiveSheet.Cells(7, 6).Select如何选择当前工作表中的单元格区域?例如,要选择当前工作表中的单元格区域C2:D10 ,可以使用下面的代码:ActiveSheet.Range(Cells(2, 3), Cells(10, 4),Select或:ActiveSheet.Range(C2:D10).Select或:ActiveSheet.Range(C2, D10).Select如何选择同一工作簿中另一工作表上的单元格区域?例如,要选择同一工作簿中另一工作表上的单元格区域D3 :E11 ,可以使用下面的代码:Application.GotoActiveWor

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

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

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

7、heets(Sheet2).ActivateRange(Test).Select如何选择与当前单元格相关的单元格?例如,要选择距当前单元格下面5行左侧4列的单元格,可以使用下面的代码:ActiveCell.Offset(5, -4).Select要选择距当前单元格上方2行右侧3列的单元格,可以使用下面的代码:ActiveCell.Offset(-2, 3).Select注意:一定要保证当前单元格与所选单元格之间的距离在工 作表范围内,否则会由错。如何选择与另一单元格(不是当前单元格)相关的单元格?例如,要选择距单元格C7下方5行右侧4列的单元格,可以使用下面的代码:ActiveSheet.Ce

8、lls(7, 3).Offset(5, 4).Select或:ActiveSheet.Range(C7).Offset(5, 4).Select如何选择偏离指定区域的一个单元格区域?例如,要选择与名为“Test”的区域大小相同但 在该区域下方4行右侧3列的一个区域,可以使用下面的代 码:ActiveSheet.Range(Test).Offset(4, 3).Select如果该命名区域不在当前工作表中,可以先激活该工作表, 然后再选择,如下面的代码:Sheets(Sheet3).ActivateActiveSheet.Range(Test).Offset(4, 3).Select如何选择一个指

9、定的区域并扩展区域的大小?例如,要选择当前工作表中名为“Database”区域,然后将该区域向下扩展5行,可以使用下面的代码:Range(Database).SelectSelection.Resize(Selection.Rows.Count + 5,Selection.Columns.Count).Select如何选择一个指定的区域,再偏离,然后扩展区域的大小?例如,选择名为 “Database” 区域下方4行右侧3列的一个区域,然后扩展2行和1歹U,可以使用下面的代码:Range(Database).SelectSelection.Offset(4, 3).Resize(Selectio

10、n.Rows.Count + 2,Selection.Columns.Count + 1).Select如何选择两个或多个指定区域?例如,为了同时选择名为 “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.Uni

11、on(Range(Sheet1!A1:B2), Range(Sheet2!C3:D4)将会由错。如何选择两个或多个指定区域的交叉区域?例如,要选择名为 “Test” 和“Sample” 的两个区域的交叉区域,可以使用 下面的代码:Application.Intersect(Range(Test), Range(Sample).Select注意,两个区域必须在同一工作表中。如何选择连续数据列中的最后一个单元格?例如,要选择一个连续列中的最后一个单元格,可以使用下面的代码:ActiveSheet.Range(a1).End(xlDown).Select该代码使用在上面的工作表中,单元格 A4被选择

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

13、.Select该代码使用在上面的工作表中,单元格区域A1 : A4将被选择。如何选择奥列中非连续数据单元格区域?例如,要选择奥列中非连续数据单元格区域,可以使用下面 的代码:ActiveSheet.Range(a1,ActiveSheet.Range(a65536).End(xlUp).Select或:ActiveSheet.Range(a1: &ActiveSheet.Range(a65536).End(xlUp).Address).Select该代码使用在上面的工作表中,单元格区域A1 : A6将被选择。如何选择一个矩形(规则的)单元格区域?要选择围绕奥单元格的一个矩形区域,可以使用Cur

14、rentRegion 方法。CurrentRegion 方法将选择四周被空 行和空列围绕的区域,如下面的代码:ActiveSheet.Range(a1).CurrentRegion.Select该代码使用在上面的工作表中,将选择单元格区域A1 : C4 也可以使用下面的代码:ActiveSheet.Range(a1,ActiveSheet.Range(a1).End(xlDown).End(xlToRight).Se lect或:ActiveSheet.Range(a1: &ActiveSheet.Range(a1).End(xlDown).End(xlToRight).Address).Se

15、lect若想选择单元格区域 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 = ActiveSheet.Cells(65536, lastC

16、ol).End(xlUp).RowActiveSheet.Range(a1: &ActiveSheet.Cells(lastRow,lastCol).Address).Select如何选择多个不同长度的非连续列?要同时选择A列和C列中的数据,即单元格区域A1:A3和C1:C6 ,可使用下面的代码:StartRange = A1EndRange = C1Set a = Range(StartRange,Range(StartRange).End(xlDown)Set b = Range(EndRange, Range(EndRange).End(xlDown)Union(a, b).Select

17、注:使用Application.Goto 方法,如果指定另一工作表 (不是 当前工作表)中的指定区域,在Range属性中使用两个 Cells 属性时,则必须包括 Sheets对象,如:Application.GotoSheets(Sheet1).Range(Sheets(Sheet1).Range(Sheets(Sheet1).Cells(2, 3),Sheets(Sheet1).Cells(4, 5)在VBA中,Range对象既可表示单个单元格,也可表示单 元格区域。下面的内容说明了标识和处理Range对象最常用的方法。引用工作表上的所有单元格如果对工作表应用 Cells属性时不指定索引号,

18、该方法将返 回代表工作表上所有单元格的Range对象。以下Sub过程清除活动工作簿中Sheet1上的所有单元格的内容。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下表演示了使用Range属性的一些 A1样式

19、引用。引用含义Range(A1)单元格 A1Range(A1:B5)从单元格 A1到单元格 B5的区域Range(C5:D9,G9:H16)多块选定区域Range(A:A)Range(1:1)Range(A:C)Range(1:5)Range(1:1,3:3,8:8)Range(A:A,C:C,F:F)引用行和列A列第一行从A列到C列的区域从第一行到第五行的区域第1、 3和8行A 、 C和F歹U可用Rows属性或Columns属性来处理整行或整列。个属性返回代表单元格区域的Range对象。在下例中,Rows(1)返回Sheet1上的第一行,然后将区域字体加粗。这两Sub RowBold()Wo

20、rksheets(Sheet1).Rows(1).Font.Bold = TrueEnd Sub下表举例说明了使用Rows和Columns属性的一些行和列的引用。引用含义Rows(1) 第一行Rows 工作表上所有的行Columns(1) 第一列Columns(A) 第一列Columns工作表上所有的列若要同时处理若干行或列,可创建一个对象变量并使用Union 方法,将对 Rows 属性或 Columns属性的多个调用组合起来。下例将活动工作簿中第一张工作 表上的第一行、第三行和第五行的字体设置为加粗。Sub SeveralRows()Worksheets(Sheet1).ActivateDi

21、m myUnion As RangeSet myUnion = Union(Rows(1), Rows(3), Rows(5)myUnion.Font.Bold = TrueEnd Sub使用索引号引用单元格通过使用行列索引号,可用Cells属性引用单个单元格。该属性返回代表单个单元格的Range对象。在下例中,Cells(6,1)返回Sheet1上的单元格A6,然后将Value属性设置为10。Sub EnterValue()Worksheets(Sheet1).Cells(6, 1).Value = 10End Sub因为可用变量替代编号,所以Cells属性非常适合于在单元 格区域中循环,如

22、下例中所示。Sub CycleThrough()Dim Counter As IntegerFor Counter = 1 To 20Worksheets(Sheet1).Cells(Counter, 3).Value =CounterNext CounterEnd Sub如果要同时更改莫个区域中所有单元格的属性(或将方法应 用于该区域中的所有单元格),建议使用 Range属性。使用快捷表示法引用单元格可用方括号将 A1引用样式或命名区域括起来,作为Range属性的快捷方式。这样就不必键入单词“Range”或使用引号了,如下例中所示。Sub ClearRange()Worksheets(She

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

24、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 FormatSales()Rang

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

26、Sub在命名区域中的单元格上循环下例用For Each.Next 循环语句在命名区域中的每一个单 元格上循环。如果该区域中的任一单元格的值超过limit的值,就将该单元格的颜色更改为黄色。Sub ApplyColor()Const Limit As Integer = 25For Each c In Range(MyRange)If c.Value Limit Thenc.Interior.ColorIndex = 27End IfNext cEnd Sub引用多个区域使用适当的方法可以很容易地同时引用多个单元格区域。可用Range和Union方法引用任意组合的单元格区域;用Areas属性可引用工作表上选定的一组单元格区域。使用 Range 属性通过在两个或多个引用之间插入逗号,可使用Range属性引用多个区域。以下示例清除了 Sheetl上三个区域的内容。Sub ClearRanges()Worksheets(Sheet1).Range(C5:D9,G9:H16,B14:D18).ClearContentsEnd Sub命名区域使得用 Range属性处理多个区域更加容易。以下 示例可在所有这三个命名区域处于同一工作表时运行。Sub ClearNamed()Range(MyRange, YourRange,HisRange).ClearConten

温馨提示

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

评论

0/150

提交评论