首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >关键字'New‘在VBA中是做什么的?

关键字'New‘在VBA中是做什么的?
EN

Stack Overflow用户
提问于 2014-02-08 22:37:11
回答 2查看 18.7K关注 0票数 8

在VBA过程中,我们经常遇到关键字New,通常是在实例化对现有对象实例的对象引用时。但是,在一些实例化中,我们使用关键字New,而在其他实例化中,我们不使用关键字,例如:

Dim T As Excel.Workbook

Set T = Application.Workbooks(Bk)

在上面的示例1中,使用了"New"关键字有而不是

Dim fso As FileSystemObject

Set fso = New FileSystemObject

在上面的示例2中,使用了New关键字

为什么要这样?记住,我是新的船在VBA,但我会尽我最大的努力去理解!

此外,在声明对象引用时使用/不使用时,我也会感到困惑,例如:

Dim WS As Worksheet

在上面的示例1中,使用了"New"关键字有而不是

Dim myClassModule As New cl_ChartEvents

在上面的示例2中,使用了New关键字

微软的帮助什么都没告诉我..。

关键字,该关键字支持隐式创建对象。如果在声明对象变量时使用New,则会在第一次引用对象时创建对象的新实例,因此不必使用Set语句来分配对象引用。

Gratz2u

亲爱的人,只是最后的灰尘,为了深入的理解。

Dim WS as Worksheet

Set WS = Worksheets("Sheet1")

在这里,我们创建了一个已经存在的对象,以便打开MS (例如,在“默认模式”中),当然是Sheet1。既然New 存在,并且关键字是不存在的,那么我们如何立即在一行中实例化这个对象呢?

4 @exantas

对不起,没有足够的代表贴出图片:

EN

Stack Overflow用户

发布于 2014-02-08 23:05:55

您说过:“我们通常在实例化对象引用到现有对象实例时遇到关键字New”。事实正好相反:当某些东西还不存在时,就会使用New,而您想要创建它,那么“新的”。

如果某个东西已经存在,您可以省略New关键字,例如VBA中的Application、ActiveWorkbook对象和其他对象,即启动Excel时已经打开的所有内容。

Dim ... As New ...

代码语言:javascript
运行
复制
Dim ... As ...
Set ... = New ...

对于创建新工作表的最后一个问题,它是通过

代码语言:javascript
运行
复制
Dim WS As Worksheet
Set WS = Sheets.Add
WS.Name = "My new worksheet"

您不能使用Dim WS as New Worksheet,因为微软阻止您这样做。即使在该指令中指定了New,该对象仍然是Nothing

票数 5
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21652671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档