温馨提示:本文翻译自stackoverflow.com,查看原文请点击:excel - What is the difference between dim and set in vba
excel vb6 vba

excel - vba中的dim和set有什么区别

发布于 2020-04-11 13:11:22

请原谅我是VBA的新手。

有时候我用

Dim r as Range
r = Range("A1")

其他时候我用

Set r = Range("A1")

有什么不同?我什么时候应该使用什么?

查看更多

提问者
Unknown
被浏览
22
community wiki 2016-07-04 14:57

set除非引用对象引用,否则没有理由使用最好在这种情况下使用它。对于所有其他简单数据类型,只需使用赋值运算符。但是,dim(维度)所有变量是一个好主意

简单数据类型的例子是integerlongbooleanstring这些只是数据类型,没有自己的方法和属性。

Dim i as Integer
i = 5

Dim myWord as String
myWord = "Whatever I want"

一个示例为objecta Range,a Worksheet或a Workbook这些都有自己的方法和属性。

Dim myRange as Range
Set myRange = Sheet1.Range("A1")

如果您尝试不使用最后一行Set,则VB将引发错误。现在您有了一个object声明,可以访问其属性和方法。

myString = myRange.Value