Tag: inheritance

在Excel中,有可能在引用单元格时inheritance公式而不是值

是否可以在Excel中inheritance公式而不是引用单元格时的值? Excel有许多强大的function,但据我所知,这不是其中之一,虽然我的崇高意见是基本的。 在我自己的使用场景中,列公式是基于一个模板,它自己也是基于另一个模板,依此类推。 结果是一个退出的复杂(扩展)inheritance树,其中某行上的公式可以更改(覆盖)一次或多次。 当然,尊重相对和绝对引用的机制也是至关重要的。 例: A1: =$B1+$C1 A2: =InheritFrom($A$1) –> what will result in =$B2+$C2 A3: =InheritFrom($A$2) –> what will result in =$B3+$C3 A4: =($B4+$C4)*2 A5: =InheritFrom($A$4) –> what will result in =($B5+$C5)*2 A6: =($D6*Z6)/12+$B6 A7: =InheritFrom($A$6) –> what will result in =($D7*Z7)/12+$B7 A8: =InheritFrom($A$1) –> what will result in =$B8+$C8 A9: =InheritFrom($A$7) –> […]

VBAinheritance通过build设,构造不工作?

我刚刚开始在VBA中使用类,我正在按照这里所述的“通过构造inheritance”方法。 我的例子使用了一个简单的类,它包含一个值(作为变体)和一个值types(作为一个string)。 我创build了一个子类,其中值types被设置为构造函数中的string。 这是我的代码: 接口类(IVal) 'IVal interface class (from https://www.theartofquantfinance.com/inheritance-by-construction-in-vba/) Option Explicit '———————————– 'Accessor methods for ValType '———————————– Public Property Get ValType() As String End Property Public Property Let ValType(ByVal RHS As String) End Property '———————————– 'Accessor methods for Val '———————————– Public Property Get Val() As Variant End Property Public Property Let Val(ByVal RHS As […]

在VBA中实现接口的类模块中的其他方法

我为Microsoft Excel 2010编写一个VBAmacros。 在我的项目中的一些模块真的会哭出来的子类,但我已经明白,不支持inheritance。 知道了,我走了很艰难的路,并在每个模块中使用一个接口再次实现了所有的方法。 但是,现在我体验到只有一个模块(但不在接口中)发生的方法会引发exception: 未find方法或数据成员! 我不完全确定,但我有这样的感觉,这是与界面有关。 所以我想知道以下几点: 在VBA模块中实现一个接口时,是否仍然可以为这个模块编写额外的公共子集? 如果这是不可能的,那么将某个function附加到实现接口的模块的正确模式是什么?

Excel VBA:为什么“表格”集合不是“集合”?

Excel VBA上的一个简单问题:如果“Sheets”对象是一个集合,为什么下面的语句返回false? (在Inmediate面板中input) debug.print TypeOf Sheets Is Collection Falso 我发现它是因为我做了一个以Collection为参数的函数。 该函数与我声明为Collection的variables一起工作,但不适用于其他集合(如Sheets集合)。 也许VBA在inheritance和/或多态性方面失败了? 编辑 :正如JosieP和Mehow所解释的,Sheets集合不是从Collection类/接口inheritance的,所以它不是Collection,不能作为Collection使用多态。 所以现在的问题是:为什么Sheets不是Collection的子类? 为什么他们没有inheritance收集? 考虑到已经在Sheets中实现的方法/属性,它应该是小菜一碟。 正如我所看到的,Collection类/接口只需要4个方法: Add Count Item Remove 而Sheets已经实现了4个类似的方法/属性: Add Count Item Delete 所以映射将是微不足道的。 他们可以很容易地将Sheets集合转换为Collection。 编辑2 :我多谢MS的build议,但是我不会这样做,因为他们可能会说“这不是一个devise错误,它是一个function”:)。 更多思考的食物:在新的工作簿中运行以下代码: Sheets.Add.name = "sh2" Sheets.Add.name = "sh3" Dim col As Collection Set col = New Collection col.Add Sheets(1) col.Add Sheets(2) col.Add Sheets(3) For Each […]