复杂宏 - 创建树关系

时间:2013-05-21 13:17:21

标签: excel excel-vba visual-studio-macros vba

我需要帮助创建一个将执行以下功能的宏,或类似的东西(我不确定是否甚至可以创建这样的宏):

我有60,000多行数据,包含两列,ASSEMBLIES和COMPONENTS。 程序集有多个组件,例如:

ASSEMBLY/COMPS IMAGE

但是,装配也可以是一个组件。

我需要创建一个组件和组件之间关系的树,所以基本上找到最高级别,然后找到所有子组件和这些子组件的所有子组件。

如果我有办法可以做到这一点,请告诉我,因为它会让事情变得更容易!

1 个答案:

答案 0 :(得分:0)

好的,对于第二种方法,我想我会设置以下内容: 表1 - 包含60,000行的现有数据表

第2页 - “进入”分析,在单元格A1(或您想要的任何位置)中使用特定的部件号,并选择单元格A1

执行以下操作的“进入”宏:

从当前单元格开始,递增行号并将缩进级别设置为1

获取所选组件进入的程序集的数据表中所有匹配项的列表(请参阅http://office.microsoft.com/en-us/excel-help/how-to-look-up-a-value-in-a-list-and-return-multiple-corresponding-values-HA001226038.aspx#_Toc273640147

如果结果列表中没有条目,则递减缩进级别和结束,否则对于列表中的每个条目,它将匹配的程序集编号放入当前单元格(使用缩进级别添加前导空格,或格式为需要),递增行号,递增缩进级别并递归调用“Goes into”宏以获取程序集号

此宏基本上会为放置在单元格A1中的部件号生成一个缩进的更高级别程序集列表。

工作表3 - 然后为“包含”分析添加另一个工作表并以相同的方式设置 - 或者如果您愿意,可以在另一列的工作表2上。第二个分析与第一个分析相同,不同之处在于您从组件列表开始,而不是组件进入的组件列表。