如何导航从 Visual Basic 的 Excel 对象

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

本文内容

概要

本文介绍了可用于导航和访问 Microsoft Excel 应用程序对象的三种方法:

  • 使用普通和默认属性
  • 使用别名
  • 使用 Microsoft Excel 5.0 版对象的父项和应用程序方法访问 Microsoft Excel 中的任何对象

更多信息

Microsoft Excel 5.0 版中的每个对象的对象的应用程序的层次结构中存在某处。您选择这些对象之间通过该应用程序的层次结构中向下导航。在这种层次结构的顶部是应用程序对象。任何事件或分配给应用程序对象的操作将影响整个应用程序。例如:
   ' Close the application
   [Object].Application.Quit
				
用指向任何有效 Microsoft Excel 对象,它可以从下面的示例创建的任何变量的替换 [对象]:
   ' MyObject represents [Object] and OLE1 represents an OLE control
   ' that contains an Microsoft Excel Worksheet object.
   MyObject = OLE1.Object
   Set MyObject = CreateObject("Excel.Sheet")
   Set MyObject = GetObject("C:\EXCEL\EXAMPLES\SAMPLES.XLS")
				
的 Application 对象包含较大的其他对象。例如对于您可以使用下面的代码来引用的工作簿在 Excel 中当前加载的集合:
   [Object].Application.Workbooks
				
如果希望从集合中检索单个的工作簿使用 Item 方法。要将第一个工作簿,请参阅这样的示例:
    [Object].Application.Workbooks.Item(1)
				
要关闭第一个工作簿:
   [Object].Application.Workbooks.Item(1).Close
				

访问使用普通引用或默认属性的对象

每个工作簿中包含的工作表的集合,每个工作表包含的单元格,等的集合。(请参阅 Excel 文档和帮助菜单的有关 Excel 的对象层次结构的特定详细信息。在代码中,对特定单元格的引用可能看起来是这样:
   ' Following refers to cell A1 on Sheet1 in the first workbook.
   ' Enter the following two lines as one, single line:
   [Object].Application.Workbooks.Item(1).
      WorkSheets.Item("Sheet1").Cells.Item(1,1)
				
此引用可以冗长而复杂 ; 但是,快捷方式可用。了解导航运算符 (.) 是成功的对象编程的基础。

短切口

所有对象都有一个默认属性和方法。对于集合,默认方法是 Item 方法。大多数的对象的 Name 属性是默认属性。若要简化编程实施了此约定。例如对于上面的示例中可简化为:
   [Object].Application.Workbooks(1).WorkSheets("Sheet1").Cells(1,1)
				

访问对象 (按别名对象

使用别名可以简化对象编程。如果您要编写大量的处理工作表 Sheet1 的代码,例如对于语法可能会变得冗长。要防止出现这种情况,创建一个对象,指向最低公共对象。这称为别名。使用 Set 语句创建的别名:
   Dim Sheet1 as Object
   ' Alias Sheet1 to represent [Object]...WorkSheets("Sheet1")
   Set Sheet1 = [Object].Application.Workbooks(1).WorkSheets("Sheet1")
   ' Now just use the variable Sheet1 to refer to Sheet1.
   Sheet1.Cells(1,1).Value = "Title"
   Sheet1.Cells(1,2).Value = "ID"
   Sheet1.Cells(1,3).Value = "Cost"
   Sheet1.Cells(2,1).Value = "Phone"
   Sheet1.Cells(2,2).Value = 123413423
   Sheet1.Cells(2,3).Value = 89.95
				

通过使用父和应用程序方法访问对象

父级和应用程序方法使您可以回对象层次结构向上导航。向应用程序方法后定位到应用程序对象和父方法定位上一级对象层次结构。在这篇文章中的所有示例都启动 [对象]。只要 [对象] 是一个有效的 Microsoft Excel 对象,所有这些语句也是有效。 无论 [对象] 的上下文。

编程 Visual Basic 4.0 版从 Microsoft Excel 对象时,这是很有帮助。Microsoft Excel 公开只在可用作到 Microsoft Excel 的入口点的三个对象。这些是:

  • Excel.Application
  • Excel.Sheet
  • Excel.Chart
不要将通过 Excel.Application.5 相混淆。Excel.Application 将始终指向最新版本的 Excel 中。Excel.Application.5 将仅指向 Microsoft Excel 5.0 版。

因此,没有办法直接访问该工作簿对象没有暴露的工作簿对象。但是,这不是问题,因为工作表或图表对象的父级方法返回工作簿对象。下面的代码示例说明了这一点。

注: oleExcel 是包含 Excel.Sheet 对象的 OLE 控件。
   ' Declare object references:
   Dim Xlapp As object
   Dim XLWkb As object
   Dim XLWks As object
   Dim XLWksNew As object

   oleExcel.Action = 7   ' Activate OLE Object

   Set XLWks = oleExcel.Object   ' Alias Worksheet object
   Set XLWkb = XLWks.Parent      ' Alias WorkBook object
   Set Xlapp = XLWks.Application ' Alias Application object

   ' Add a new worksheet to the Workbook and name it:
   Set XLWksNew = XLWkb.Worksheets.add  ' Assign alias to new Worksheet
   XLWksNew.Name = "VB4 OLE Automation" & XLWkb.Worksheets.count

   ' Make the 3rd Worksheet of the Workbook active:
   XLWkb.Worksheets(3).Activate

   ' Display the dialog for InsertPicture:
   Xlapp.dialogs(342).[Show]  ' xlDialogInsertPicture = 342
				

参考

编程集成的解决方案的办公室开发工具包

属性

文章编号: 147650 - 最后修改: 2006年10月11日 - 修订: 2.3
这篇文章中的信息适用于:
  • Microsoft Visual Basic 4.0 专业版
  • Microsoft Visual Basic 4.0 16-bit Enterprise Edition
  • Microsoft Excel 5.0 标准版
关键字:?
kbmt kb16bitonly kbhowto kbprogramming KB147650 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 147650
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 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