【问题标题】:Access property of Superclass from subclass in VBA从VBA中的子类访问超类的属性
【发布时间】:2020-06-12 16:01:02
【问题描述】:

我有一个名为 AI 的类,它有一个属性可以访问 Excel 工作表,另一个属性可以访问另一个名为“Columns”的类,其中包含一堆变量。 AI.WS 返回工作表。 AI.Columns.[name of column] 将返回一个整数,表示具有该名称的列号。但是在“列”类中,它调用了一个需要工作表(AI.WS)的函数,以便知道在哪里查找列。如何从 vba 中的 AI.Columns 类(子类)访问属性 AI.WS(超类)?

【问题讨论】:

  • 一种方法是为 Columns 类提供另一个设置为 WorkSheet 的属性。

标签: vba class subclass superclass


【解决方案1】:

这是一个如此标准的问题,我很惊讶您无法通过谷歌搜索答案。您为类列提供一个名为“父”的属性,并将 AI 对象作为父对象传入。然后,您可以通过 Columns 的“父”属性访问 AI 属性。

【讨论】:

  • 谢谢,我很困惑的是如何在 Columns 类中实际实现这一点,如果我要创建一个公共属性 Get Parent(),我仍然不知道如何会在不创建新对象的情况下获得原始对象,我对如何在列类本身中利用此属性感到困惑?
  • 您在名为 Parent 的列类中创建一个属性,该属性获取/设置一个 AI 对象并具有一个 AI 对象的私有变量。当您创建一个列对象时,您然后通过 parent 传递父 AI班级。您可以将其作为公共财产或通过您的工厂进行(如果您使用这样的东西)。因此,列类中对私有父成员的任何引用都应该为 AI 类提供智能感知。
猜你喜欢
  • 2013-03-24
  • 2013-12-12
  • 1970-01-01
  • 2021-03-13
  • 2017-08-03
  • 1970-01-01
  • 1970-01-01
  • 2019-04-02
  • 2023-01-24
相关资源
最近更新 更多