VBA一个Object的实例

Exo*_*ant -1 excel vba instance excel-vba

这是关于VBA的问题

我只是无法清楚地知道我搜索过我的VBA书籍的对象的实例是什么,我还没有找到一个明确的答案.短语如:

  • Word的一个例子
  • 类模块的一个实例
  • 该过程将对象Employee声明为clsEmployee的新实例.

对我来说,一个对象,我的意思是如果一个范围("A1")是设置那么可能会改变什么以及我们如何判断我们是否有10个循环迭代来改变Range A1对象的值来自另一个实例的实例?

我甚至听说过变量的实例!

感谢您收看我的问题

mwo*_*e02 8

"一个实例是任何类的特定实现......" 维基百科上的实例(计算机科学)

Sub Example()
    Dim Word1 As Word.Application
    Dim Word2 As Word.Application
    Dim Word3 As Word.Application

    'Instantiate the first instance of a Word application
    Set Word1 = New Word.Application

    'Instantiate the second instance of a Word application
    Set Word2 = New Word.Application

    'Point our third Word object variable to the existing instance created above
    Set Word3 = Word1

End Sub
Run Code Online (Sandbox Code Playgroud)

上面的代码包含三个对象变量(Word1,)Word2,这些变量Word3单个类()派生,Word.Application表示两个不同的实例(Word1Word3指向同一个实例并Word2指向第二个实例).


请务必注意,该行Set Word3 = Word1不会将Word1对象实例的内容复制到Word3. Word1实际上只包含指向对象所在的内存中的位置的指针.

该行Set Word3 = Word1说是将内存指针从变量复制Word1到变量中Word3.因此,您对Word1对象实例所做的任何更改都将反映在Word3对象实例中......因为它们都指向同一个实例.

在示例中:

Set Word3 = Word1

Word1.Visible = True
Debug.Print Word1.Visible  'outputs True
Debug.Print Word3.Visible  'outputs True

Word1.Visible = False
Debug.Print Word1.Visible  'outputs False
Debug.Print Word3.Visible  'outputs False
Run Code Online (Sandbox Code Playgroud)