VBA,dim ws as worksheet 算什么意思?

2025-02-22 15:15:18
推荐回答(5个)
回答1:

dim ws as worksheet
这句应该这么解释:声明一个名为ws的变量,且定义该变量的数据类型为工作表对象
dim语句只是声明了这个变量为工作表对象,但并没有实际的实例引用
set ws=worksheet
这句是一个对象赋值语句,但你写的不完整,完整的应该是set ws=worksheets("工作表名称"),例如:set ws=worksheets("sheet1").
set语句是把一个工作表对象的实例引用赋个了ws变量

回答2:

vba语句,意思是:

定义 ws 为 工作表类型。

在写VBA中常需要引用某个WorkSheet对象,一般通过工作表名
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet2Name")

或者索引号
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(2)

来引用。

回答3:

在写VBA中常需要引用某个WorkSheet对象,一般通过工作表名
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet2Name")
或者索引号
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets(2)
来引用。但这样做有一个不好的地方,就是如果工作表改名或者工作簿有删除、插入动作,以上引用可能会失效。但使用Code Name在上面两种情况下都会一直有效(在VBA里一张工作表对象显示为Sheet2(Sheet2Name),Code Name即为"Sheet2”,可通过属性窗口修改为有意义的字串):
Dim ws As Worksheet
Set ws = Sheet2
而且在写法上也更简单。
但有一个缺点,跨工作表时这种方法就无效了。

回答4:

dim ws as string
是你理解的设为数据类型
dim ws as worksheet
是dim ws as new worksheet的缩写

worksheet是一个类,ws是这个类的具体化

回答5:

这个有点问题,如下还有点道理:
Dim ws As Worksheet
Set ws = Sheets("Sheet1")