我不确定将示例转换为字符串时,为什么会出现无效的键错误。
Private Sub UserForm_Initialize()
Dim i As Long, j As Long, Total_rows_Column As Long
Dim unique_keys As Long
For i = 1 To 5
TreeView1.Nodes.Add Key:=Worksheets("Sheet1").Cells(1, i), Text:=Worksheets("Sheet1").Cells(1, i)
Next i
unique_keys = 0
For i = 1 To 5
Total_rows_Column = Worksheets("Sheet1").Range(Col_Letter(i) & Rows.Count).End(xlUp).Row
For j = 2 To Total_rows_Column
unique_keys = unique_keys + 1
'ERROR IN THE LINE BELOW************
TreeView1.Nodes.Add Worksheets("Sheet1").Cells(1, i).Value, tvwChild, CStr(unique_keys), Worksheets("Sheet1").Cells(j, i).Value
Next j
Next i
End Sub
答案 0 :(得分:2)
似乎TreeNode的key
可能不只包含数字(尝试和错误,没有找到任何引用)。尝试类似
TreeView1.Nodes.Add Worksheets("Sheet1").Cells(1, i).Value, _
tvwChild, "Key" & CStr(unique_keys), _
Worksheets("Sheet1").Cells(j, i).Value
更新:
节点的 key 用作节点的 name ,而 name 可能不是数字。您可以编写TreeView1.Nodes("Key1").Text = "MyTest"
来访问该节点,但是如果名称为1
,则编译器将不会告诉您该节点是 name 还是 >索引 1
答案 1 :(得分:2)
这是一些最小的代码,可以正常工作,产生以下代码:
Private Sub UserForm_Initialize()
Dim i&, j&
For i = 1 To 5
Me.TreeView1.Nodes.Add Key:="key" & i, Text:="text" & i
Next i
For i = 1 To 5
For j = 2 To 3
TreeView1.Nodes.Add "key" & i, tvwChild, "Some More Text" & j & i, "Even More" & j
Next j
Next i
End Sub
该键似乎应该包含非数字字符且不包含空值-VBA treeview loading issue - invalid key。