Excel 如何在两个并行链式类中组织一组类似的函数

Excel 如何在两个并行链式类中组织一组类似的函数,excel,vba,Excel,Vba,我希望通过1个类+2个链接类获得这组属性: mytable.EntireRange mytable.DataBodyRange mytable.HorizontalHeaderRange mytable.VerticalHeaderRange mytable.col(strTitle).num mytable.col(strTitle).firstDataCell mytable.col(strTitle).lastDataCell mytable.row(strTitle).num myt

我希望通过1个类+2个链接类获得这组属性:

mytable.EntireRange
mytable.DataBodyRange
mytable.HorizontalHeaderRange
mytable.VerticalHeaderRange

mytable.col(strTitle).num
mytable.col(strTitle).firstDataCell
mytable.col(strTitle).lastDataCell

mytable.row(strTitle).num
mytable.row(strTitle).firstDataCell
mytable.row(strTitle).lastDataCell
组织(命名)这些类和属性的最佳方式是什么


我当前添加链接属性的解决方案是:
-我将这三个类命名为“mytable”、“mytable\u col”、“mytable\u row”,以在项目浏览器中保持可见的关系
-在“mytable”中,我添加了以下内容:

Property Get col(strTitle As String) As mytable_col
    Set col = New mytable_col
    col.Initialize = Me ' passes the parent object
 End Property
Property Get row(strTitle As String) As mytable_row
    Set row = New mytable_row
    row.Initialize = Me ' passes the parent object
 End Property
现在。。。考虑到两个并行链式类“col”和“row”的三个属性(“num”、“firstDataCell”、“lastDataCell”)共享相同的逻辑,几乎没有变化,我不希望将它们的完整代码分为6个属性,三个在“row”类中,三个在“col”中。 理想情况下,我只创建3个属性/函数(传递“行”或“列”作为变量),而不是6个。

我该怎么办?是否可以不将它们放入其他模块中?

两个请求:1)在使用VBA标记时,您是否也可以使用适当的应用程序,例如excel?2) 您已经收到了一些精心设计的答案,例如或,针对前面的问题。如果他们满意地回答了您的问题,您可以通过单击他们旁边的复选框来接受他们吗?这是对回答者的认可,也是问题结束的标志。非常感谢(请注意,我没有提供任何一个答案,但这两个答案都值得认可)。您能分享到目前为止您拥有的完整代码,或者至少是一个最小的示例,这样我们就不必重新创建它吗?“我将三个类命名为“mytable”、“mytable\u col”、“mytable\u row”,以在项目浏览器中保持可见的关系”-究竟
表格
表格列
表格行
有什么问题?在VBA代码中遇到的每个类都是
PascalCase
,它的每个成员也是
lower\u snake\u case
不仅看起来很奇怪,而且与其他所有内容冲突,如果开始处理接口,它还会导致编译器错误。也就是说,如果您实际包含了整个代码,这个问题在上会更合适。
row.Initialize=Me
看起来非常可疑(没有
设置对象分配的关键字?)。可能应该是
行。初始化我
,但如果看不到实际代码,就无法判断。