gpt4 book ai didi

excel - 使用数组使用 VBA 绘制树/格子

转载 作者:行者123 更新时间:2023-12-04 20:27:07 28 4
gpt4 key购买 nike

我正在尝试为选项评估生成一个二叉树,并且我想使用来自已经存在值的数组的值绘制一个格子。

所以基本上我的 VBA 中有一个与此类似的数组:

My array in vba

我想以这种形式粘贴到 Excel 工作表中:
How i want to paste in my worksheet

我不一定要代码,我只是想了解用于创建树的算法。我真的试图查看任何模式但找不到。

我确定的是,如果数组的列数为 (n+1),那么行数将为 (2n-1)。

提前致谢

最佳答案

这可能会给你一个想法。如果您的数组不是基于 1 的,则需要对其进行调整:

Sub InsertTree(Nodes As Variant, RootNode As Range)
'Assumes that Nodes is a 1-based array
'That has data 1-element in its first
'column, 2 in its second, etc. And that RootNode
'Has been chosen so that there is enough room
'for the tree
Dim i As Long, j As Long, n As Long
Dim TopNode As Range 'top node in each column

n = UBound(Nodes, 2)
Set TopNode = RootNode

For j = 1 To n
For i = 1 To j
TopNode.Offset(2 * (i - 1)).Value = Nodes(i, j)
Next i
If j < n Then Set TopNode = TopNode.Offset(-1, 1)
Next j
End Sub

作为测试,我设置了我的电子表格,以便从 A1 开始我有:
a b d g
c e h
f i
j

然后我跑了:
InsertTree Range("A1:D4").Value,Range("F10")

结果如下所示:

enter image description here

关于excel - 使用数组使用 VBA 绘制树/格子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58044280/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com