yeah.. strange.
probably due to passing the node byval
Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
With Node
If IsArray(.Tag) Then
'this works
Dim v
v = .Tag
v(UBound(v, 1), UBound(v, 2)) = "indirect"
.Tag = v
'this fails
.Tag(UBound(.Tag, 1), UBound(.Tag, 2)) = "direct"
MsgBox .Tag(UBound(.Tag, 1), UBound(.Tag, 2))
End If
End With
End Sub
Private Sub UserForm_Initialize()
Dim arr(1 To 10, 1 To 35) As String
With TreeView1
With .Nodes
With .Add(, tvwChild, "key1", "text1")
.Tag = arr
End With
End With
End With
End Sub
--
keepITcool
|
www.XLsupport.com | keepITcool chello nl | amsterdam
RB Smissaert wrote :
Trying to find a better way to let a treeview hold data and thought
that perhaps the Tag of the treeview nodes could hold arrays, so I
tried this.
In one Sub:
dim arr(1 to 2, 1 to 35)
Set nodx = _
MainForm.TreeView1.Nodes.Add(actNodeKey, tvwChild, , , Image:=3)
nodx.tag = arr
Then in another Sub:
.TreeView1.SelectedItem.Tag(1, 8) = "test"
But when I run this for the first time I get an out of stack space
error and the second time Excel just unloads, so a crash.
Couldn't find anything about how this could be done, but if it could
work it would be better than the way I do this now, which is hold the
node data in an array and update the array according to what happens
to the nodes. Thanks for any advice.
RBS