我正在爲excel中的用戶窗體編寫樹視圖。我希望允許表單的用戶能夠編輯任何節點的名稱並理解標記的屬性是必需的,但我不確定編寫代碼的方式。任何形式的幫助表示感謝。在excel中編輯節點TreeView VBA
1
A
回答
1
你需要從微軟追溯到時代的一個ActiveX控件的Visual Basic 6.0(VBA是VB6的變體)
試試這個
https://msdn.microsoft.com/en-us/library/ms172635(v=vs.90).aspx
一對地方控制通過轉到控制工具箱然後從列表中選擇其他控件然後從列表中選擇其他控件Microsoft TreeView Control, version 6.0
使用對象瀏覽器並選擇TreeView
類允許對您需要使用的方法和事件進行調查。必須將LabelEdit
屬性設置爲tvwAutomatic
,並允許系統處理編輯,並使用AfterLabelEdit
或一組LabelEdit
屬性設置爲tvwManual
,並且如果用戶雙擊該節點,那麼您將捕獲的是DoubleClick
事件,並手動請致電StartLabelEdit
,使用AfterLabelEdit
驗證編輯。
一些鏈接:
VB Coding Tip Treeview - Label-Editing
一些示例代碼
Option Explicit
Private Sub TreeView1_DblClick()
Dim nodSelected As MSComctlLib.Node
Set nodSelected = TreeView1.SelectedItem
If nodSelected.Text <> "root" Then
TreeView1.StartLabelEdit
End If
End Sub
Private Sub UserForm_Initialize()
TreeView1.Style = tvwTreelinesPlusMinusText
TreeView1.LabelEdit = tvwManual
'Add some nodes to the TreeView
Dim nodRoot As MSComctlLib.Node
Set nodRoot = TreeView1.Nodes.Add(Key:="root", Text:="root")
'
Dim nodChildren(1 To 2) As MSComctlLib.Node
Set nodChildren(1) = TreeView1.Nodes.Add(nodRoot, tvwChild, "child 1", "child 1")
Set nodChildren(2) = TreeView1.Nodes.Add(nodRoot, tvwChild, "child 2", "child 2")
Dim nodGrandChildren(1 To 3) As MSComctlLib.Node
Set nodGrandChildren(1) = TreeView1.Nodes.Add(nodChildren(1), tvwChild, "grandchild 1", "grandchild 1")
Set nodGrandChildren(2) = TreeView1.Nodes.Add(nodChildren(2), tvwChild, "grandchild 2", "grandchild 2")
Set nodGrandChildren(3) = TreeView1.Nodes.Add(nodChildren(2), tvwChild, "grandchild 3", "grandchild 3")
End Sub
Private Sub TreeView1_AfterLabelEdit(Cancel As Integer, NewString As String)
' Make sure that we have a value in the Label
If Len(NewString) < 1 Then
' The Label is empty
MsgBox "Error! You must enter a value"
Cancel = True
Else
MsgBox "You successfully edited label to " & NewString
End If
End Sub
注:點擊根展開子節點(不是很明顯)。
相關問題
- 1. 如何編輯TreeView節點的間距
- 2. TreeView - 只允許編輯一些節點
- 3. Kendoui treeview節點雙擊事件編輯
- 4. Kendo Treeview節點編輯/更新
- 5. 在Excel中使用vba編輯圖表
- 6. Hot在編輯節點(C#)時提交TreeView更改?
- 7. Excel VBA報表編輯
- 8. excel vba到CRUD drupal節點
- 9. 在TreeView中拖放節點
- 10. 從Excel VBA編輯嵌入式PowerPoint VBA
- 11. C#TreeView節點
- 12. 如何模擬按F2鍵設置爲可編輯TreeView節點
- 13. TreeView:如何確定節點是否處於編輯模式?
- 14. 編輯TreeView節點不會更改TreeNode鍵
- 15. 在vba運行時凍結excel編輯
- 16. 編輯Xml節點
- 17. 如何在C#Visual Studio 2010中保存已編輯的Treeview節點文本
- 18. 在VirtualTreeView中編輯根節點celltext
- 19. 如何在SWT中編輯樹節點
- 20. TreeView中消失的節點
- 21. 可編輯的TreeView
- 22. treeview節點事件
- 23. Treeview節點點擊行爲
- 24. MVVM Treeview點擊節點
- 25. 使用Excel VBA編輯HTML代碼
- 26. Excel vba繪製,編輯範圍
- 27. VBA編輯斷 - 的Excel 2016 OSX
- 28. VBA:使用VBA編輯excel圖表中的圖例名稱
- 29. 在TreeView中上下移動節點
- 30. 在VB.NET中添加嵌套Treeview節點?
如第4段所述,您是否將TreeView控件添加到用戶窗體? –
轉到您的用戶表單。然後從頂部菜單進入查看 - >工具箱。然後在灰色空白區域的新窗口中右鍵單擊並從彈出菜單中選擇附加控件,然後在列表中找到並單擊「Microsoft TreeView控件6.0版」,然後單擊確定。然後會出現一個新的樹狀圖標,點擊並按住,然後將其拖動到您的表單中。控件的默認名稱將是Treeview1。 –
如果你已經有了Treeview,那麼我想你會修改代碼。我對文本編譯錯誤感到困惑。在你的工具 - >參考文件中,你是否檢查過「Microsoft Windows Common Controls 6.0(SP6)」? –