文章编号: 291308 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

更多信息

Microsoft 提供的编程示例只用于演示目的,不带任何明示或暗示担保。 这包括但不限于对适销性或特定用途适用性的暗示担保。 本文假定您熟悉演示的编程语言以及用于创建和调试过程的工具。 Microsoft 的支持工程师可以帮助解释某个特定过程的功能。但是,他们不会修改这些示例以提供额外的功能或构建过程来满足您的特定要求。 本文中的示例将使用下表中所列的 Visual Basic 方法。
   方法               参数
   ------------------------------------------
   Activate           无
   Cells              rowIndex, columnIndex
   Application.Goto   reference, scroll
   Offset             rowOffset, columnOffset
   Range              cell1
                      cell1, cell2
   Resize             rowSize, columnSize
   Select             none
   Sheets             index(或 sheetName)
   Workbooks          index(或 bookName)
   End                direction
   CurrentRegion      无
				
本文中的示例将使用下表中所列的属性。
   属性            作用
   ---------------------------------------------------------------------
   ActiveSheet      指定活动工作表
   ActiveWorkbook   指定活动工作簿
   Columns.Count    计算指定项中的列数
   Rows.Count       计算指定项中的行数
   Selection        引用当前选定的区域
				

1:如何在活动工作表上选择单元格

若要在活动工作表上选择单元格 D5,您可以使用下列两个示例之一:
ActiveSheet.Cells(5, 4).Select
				
- 或 -
ActiveSheet.Range("D5").Select
				

2:如何在同一工作簿中的另一工作表上选择单元格

若要在同一工作簿中的另一工作表上选择单元格 E6,您可以使用下列两个示例之一:
Application.Goto ActiveWorkbook.Sheets("Sheet2").Cells(6, 5)
				
   - 或 -
				
Application.Goto (ActiveWorkbook.Sheets("Sheet2").Range("E6"))
				
或者,您也可以激活工作表,然后使用上面的方法 1 来选择单元格:
Sheets("Sheet2").Activate
ActiveSheet.Cells(6, 5).Select
				

3:如何在另外一个工作簿中的工作表上选择单元格

若要在另一个工作簿中的工作表上选择单元格 F7,您可以使用下列两个示例之一:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Cells(7, 6)
				
- 或 -
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("F7")
				
或者,您也可以激活工作表,然后使用上面的方法 1 来选择单元格:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
ActiveSheet.Cells(7, 6).Select
				

4:如何在活动工作表上选择单元格区域

若要在活动工作表上选择区域 C2:D10,您可以使用以下任何示例:
ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select
				
ActiveSheet.Range("C2:D10").Select
				
ActiveSheet.Range("C2", "D10").Select
				

5:如何在同一工作簿中另一工作表上选择单元格区域

若要在同一工作簿中的另一个工作表上选择区域 D3:E11,您可以使用下列两个示例之一:
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3:E11")
				
Application.Goto ActiveWorkbook.Sheets("Sheet3").Range("D3", "E11")
				
或者,您也可以激活工作表,然后使用上面的方法 4 来选择范围:
Sheets("Sheet3").Activate
ActiveSheet.Range(Cells(3, 4), Cells(11, 5)).Select
				

6:如何在另外一个工作簿中的工作表上选择单元格区域

若要在另一个工作簿中的工作表上选择区域 E4:F12,您可以使用下列两个示例之一:
Application.Goto Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4:F12")
				
Application.Goto _
      Workbooks("BOOK2.XLS").Sheets("Sheet1").Range("E4", "F12")
				
或者,您也可以激活工作表,然后使用上面的方法 4 来选择范围:
Workbooks("BOOK2.XLS").Sheets("Sheet1").Activate
   ActiveSheet.Range(Cells(4, 5), Cells(12, 6)).Select
				

7:如何在活动工作表上选择命名区域

若要在活动工作表上选择区域“Test”,您可以使用下列两个示例之一:
Range("Test").Select
				
Application.Goto "Test"
				

8:如何在同一工作簿中另一工作表上选择命名区域

若要在同一工作簿中的另一工作表上选择命名区域“Test”,您可以使用以下示例:
Application.Goto Sheets("Sheet1").Range("Test")
				
或者,您也可以激活工作表,然后使用上面的方法 7 来选择命名区域:
Sheets("Sheet1").Activate
Range("Test").Select
				

9:如何在另一工作簿中的工作表上选择命名区域

若要在另一工作簿中的工作表上选择命名区域“Test”,您可以使用以下示例:
Application.Goto _
   Workbooks("BOOK2.XLS").Sheets("Sheet2").Range("Test")
				
或者,您也可以激活工作表,然后使用上面的方法 7 来选择命名区域:
Workbooks("BOOK2.XLS").Sheets("Sheet2").Activate
Range("Test").Select
				

10:如何相对于活动单元格选择单元格

若要选择活动单元格下方五行和左侧四列的单元格,您可以使用以下示例:
ActiveCell.Offset(5, -4).Select
				
若要选择活动单元格上方两行和右侧三列的单元格,您可以使用以下示例:
ActiveCell.Offset(-2, 3).Select
				
注意如果您尝试选择“工作表之外”的一个单元格,将会出现错误。 如果活动单元格处于 A 列到 D 列之间,以上所示的第一个示例将返回错误,因为将四列移到左侧将使活动单元格变成无效的单元格地址。

11: 如何相对于另一(非活动)单元格选择单元格

若要选择 C7 单元格下方五行和右侧四列的单元格,您可以使用下列两个示例之一:
ActiveSheet.Cells(7, 3).Offset(5, 4).Select
				
ActiveSheet.Range("C7").Offset(5, 4).Select
				

12:如何相对于指定区域选择单元格区域偏移

若要选择与命名区域“Test”相同尺寸但向下移动四行、向右移动三列的单元格区域,您可以使用以下示例:
ActiveSheet.Range("Test").Offset(4, 3).Select
				
如果命名区域在另一个(非活动)工作表上,请首先激活该工作表,接着使用以下示例选择该区域:
Sheets("Sheet3").Activate
ActiveSheet.Range("Test").Offset(4, 3).Select
				

13:如何选择指定的区域并调整所选区域的大小

若要选择命名区域“Database”,然后扩展五行的选择内容,您可以使用以下示例:
Range("Database").Select
Selection.Resize(Selection.Rows.Count + 5, _
   Selection.Columns.Count).Select
				

14:如何选择指定的区域、使之偏移然后调整其大小

若要选择命名区域“Database”下方四行、右侧三列的区域并包括超过命名区域两行和一列的区域,您可以使用以下示例:
Range("Database").Select
Selection.Offset(4, 3).Resize(Selection.Rows.Count + 2, _
   Selection.Columns.Count + 1).Select
				

15:如何选择两个或更多指定区域的联合

若要选择两个命名区域“Test”和“Sample”的联合(即合并区域),您可以使用以下示例:
Application.Union(Range("Test"), Range("Sample")).Select
				
注意,在本例中,这两个区域必须位于同一个工作表上才行。 另请注意,Union 方式不可以跨工作表使用。 例如,下面这一行可以很好地执行
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet1!C3:D4"))
				
但下面这行
Set y = Application.Union(Range("Sheet1!A1:B2"), Range("Sheet2!C3:D4"))
				
将返回错误消息:
Union method of application class failed

16:如何选择两个或更多指定区域的交集

若要选择两个命名区域“Test”和“Sample”的交集,您可以使用以下示例:
Application.Intersect(Range("Test"), Range("Sample")).Select
				
注意,在本例中,这两个区域必须位于同一个工作表上才行。



本文中的示例 17-21 引用下面这一示例数据集。 每一个示例都说明了将选择示例数据中的哪一单元格区域。
   A1: Name        B1: Sales    C1: Quantity
   A2: a       B2: $10      C2: 5
   A3: b       B3:          C3: 10
   A4: c       B4: $10      C4: 5
   A5:         B5:          C5:
   A6: Total   B6: $20      C6: 20
				

17:如何选择一列连续数据的最后一个单元格

若要选择一个连续列中的最后一个单元格,请使用以下示例:
ActiveSheet.Range("a1").End(xlDown).Select
				
当将此代码用于示例表时,单元格 A4 将被选定。

18:如何选择一列连续数据底部的空白单元格

若要选择一个连续列下方的单元格,请使用以下示例:
ActiveSheet.Range("a1").End(xlDown).Offset(1,0).Select
				
当将此代码用于示例表时,单元格 A5 将被选定。

19:如何在一列中选择整个相邻单元格区域

若要在列中选择一个连续单元格区域,请使用下列示例之一:
ActiveSheet.Range("a1", ActiveSheet.Range("a1").End(xlDown)).Select
				
   - 或 -
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a1"). _
      End(xlDown).Address).Select
				
当将此代码用于示例表时,单元格 A1 到 A4 将被选定。

20:如何在一列中选择整个非连续单元格区域

若要选择非连续的单元格区域,请使用下列示例之一:
ActiveSheet.Range("a1",ActiveSheet.Range("a65536").End(xlUp)).Select
				
   - 或 -
				
ActiveSheet.Range("a1:" & ActiveSheet.Range("a65536"). _
   End(xlUp).Address).Select
				
当将此代码用于示例表时,将选择单元格 A1 到 A6。

21:如何选择矩形单元格区域

为了选择某一单元格周围的矩形区域,请使用 CurrentRegion 方法。 由 CurrentRegion 方法选定的区域是一个由空白行和空白列的任意组合限定的区域。 下面是一个如何使用 CurrentRegion 方法的示例:
ActiveSheet.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).Select
				
在某些实例中,您可能想选择单元格 A1 到 C6。 在本示例中,CurrentRegion 方法将不能执行,这是因为第 5 行是空行。下列示例将选择所有的单元格:
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1", ActiveSheet.Cells(lastRow, lastCol)).Select
				
    - 或 -
				
lastCol = ActiveSheet.Range("a1").End(xlToRight).Column
lastRow = ActiveSheet.Cells(65536, lastCol).End(xlUp).Row
ActiveSheet.Range("a1:" & _
   ActiveSheet.Cells(lastRow, lastCol).Address).Select
				

22. 如何选择长度不一的多个非相邻列

若要选择长度不一的多个非相邻列,请使用下面的示例表和宏示例:
   A1: 1  B1: 1  C1: 1  D1: 1
   A2: 2  B2: 2  C2: 2  D2: 2
   A3: 3  B3: 3  C3: 3  D3: 3
   A4:    B4: 4  C4: 4  D4: 4
   A5:    B5: 5  C5: 5  D5:
   A6:    B6:    C6: 6  D6:
				
StartRange = "A1"
EndRange = "C1"
Set a = Range(StartRange, Range(StartRange).End(xlDown))
Set b = Range(EndRange, Range(EndRange).End(xlDown))
Union(a,b).Select
				
当将此代码用于示例表时,单元格 A1:A3 和 C1:C6 将被选定。

关于示例的说明

  • 通常可以忽略 ActiveSheet 属性,因为如果未命名一个具体的工作表,此属性就是隐含的。 例如,可以不使用
    ActiveSheet.Range("D5").Select
    						
    您可以使用:
    Range("D5").Select
    						
  • 也可以忽略 ActiveWorkbook 属性。 除非命名了一个具体的工作簿,否则活动工作簿是隐含的。
  • 当您使用 Application.Goto 方法时,如果想要在指定区域位于另一个(非活动)工作表上时在 Range 方法内使用 Cells 方法,则每次都必须包含 Sheets 对象。 例如:
    Application.Goto Sheets("Sheet1").Range( _
          Sheets("Sheet1").Range(Sheets("Sheet1").Cells(2, 3), _
          Sheets("Sheet1").Cells(4, 5)))
    					
  • 对于引号中的任何项(例如,命名区域“Test”),您还可以使用一个值为字符串的变量。 例如,可以不使用
    ActiveWorkbook.Sheets("Sheet1").Activate
    						
    您可以使用
    ActiveWorkbook.Sheets(myVar).Activate
    						
    其中 myVar 的值是“Sheet1”。

参考


有关如何使用本文中的示例代码的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290140 如何运行知识库文章中 Office XP 程序的示例代码
注意:本篇“快速发布”文章是从 Microsoft 支持组织直接创建的。 文中包含的信息按原样提供,用于响应紧急问题。 由于发布仓促,材料可能包含印刷错误,并且可能随时修订,恕不另行通知。 有关其他注意事项,请参阅使用条款

属性

文章编号: 291308 - 最后修改: 2014年1月31日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft Office Excel 2003
  • Microsoft Office Excel 2007
  • Microsoft Excel 2010
关键字:?
kbautomation kbmacro kbdtacode kbhowto kbprogramming KB291308
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com