VBAvariables暗淡的问题

在VBA上只是一个简单的问题

我正在学习VBA中的类模块,并且遇到了在类模块中声明variables的新练习。 这里是:

Public WithEvents TxtGroup As MSForms.TextBox 

 Dim Word1 As Word.Application Dim bottomLabel As New System.Windows.Forms.Label 

在这之后的AsNew关键字,而不是看到一个数据types或一个对象或一个类对象的引用,我们看到两个单词join一段时间就像某种目录…例如MSForms.TextBox,因为我的问题是一些开箱即用的function,我无法在我的VBA书上find关于这种声明技术转换的充分解释。 我需要非常快速地学习类,我一定会问,为什么我会遇到这种做法,因为我从来没有在模块中看到它。

我已经看到了一些例子

 Private Sub xlApp_NewWorkbook(ByVal Wb As Workbook) Dim wks As Worksheet With Wb For Each wks In .Worksheets wks.PageSetup.LeftFooter = “Created by: “ & .Application.UserName wks.PageSetup.RightFooter = Now Next wks End With End Sub 

为什么这些代码块在声明中没有名称空间,而其他代码块呢? 感谢您收看我的问题

看看这个关于VB中的命名空间的MSDN文章 。

结合编程术语命名空间意味着包装:

命名空间是一组标识符(也称为符号,名称)的容器。[1] [2] 命名空间为特定的标识符提供了一个间接级别,从而可以区分具有相同确切名称的标识符。

所以一个名称空间可以使具有相同名称的类并存,并且可以并排使用。 在每个包中,一个或多个具有唯一名称的类可以驻留。 例如:

例如:

 namespace Teachers class Person end class end namespace namespace Doctors class Person end class end namespace 

为了创build一个政客对象,你需要唯一标识这个类,所以你不能只写:

 Dim p as Person 

因为编译器无法知道从两个Person类中实例化哪个。 这就是为什么你用它的名字空间来标识类:

 Dim t as Teachers.Person Dim d as Doctors.Person 

在你给出的例子中:

 Dim Word1 As Word.Application 

Word命名空间 ,应用程序的类和variables的types!

定义一个variables时,最后一部分(最后一个点之后)总是一个类,最后一个点之前的所有内容都是一个名称空间! 在您给出的示例中,您正在使用命名空间Systems.Windows.Forms中的TextBox。

如果类名是唯一的,即使它存在于任何名称空间中,也不需要编写它,因为编译器可以自动推断出正确的名称。 在VB.NET中有导入关键字,你可以通过它导入一个命名空间到你的代码,以便使用这些类而不用命名空间来限定它们。