给对象变量赋值前一定要声明变量类型吗?

如果把dim内容省略,则不能运行。虽然已经关了“要求变量声明”的功能。给对象变量赋值前一定要声明变量类型吗?

Sub b()
Dim a As Range
Set a = Worksheets(1).Range("c2")a.Value = "地址"
a.Font.Name = "黑体"
a.Font.Bold = True
End Sub

对象变量是一定要声明类型的,如果不能预先确定类型,可统一声明为Object
Dim a As Object

其他变量则可以不预先声明

补充一句:VB本身的内部对象如窗体、控件等等在赋值给一个变量时,该变量是可以不声明的;而Range属于外部对象,是必须声明的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-18
定义变量是必须的。不定义,没办法用,数据类型可以省,就变成默认的了。建议还是定义数据类型。这样以后出错的话容易找到问题的所在。追问

Dim a As Range

这句省略以后,为什么程序不能运行?VBA是可以不声明变量类型的。

相似回答