0
我有一個在複選框的Excel 2007中的TreeView。TreeView Excel 2007以編程方式選擇複選框
- 我想要的複選框全部選中當樹被填充
- 我想,當我選擇/取消選擇列表中的父節點,所有的孩子都選擇/未選擇
下面是到目前爲止我所編寫的代碼:
Private Sub UserForm_Initialize()
'Set control defaults
With Me
.CommandButton1.Caption = "Close"
.Label1 = vbNullString
.ZonesTree.LineStyle = tvwRootLines
End With
'Populate the Treeview
Call TreeView_Populate
End Sub
Private Sub TreeView_Populate()
Dim wbBook As Workbook
Dim wsZones As Worksheet
Dim rngZones As Range
Dim rngCinemas As Range
Dim lngRows As Long
Set wbBook = ThisWorkbook
Set wsZones = wbBook.Worksheets("Cinemas")
'lngRows = wsZones.Range("A65536").End(xlUp).row
lngRows = wsZones.UsedRange.Rows.Count
Set rngZones = wsZones.Range("A1:A" & lngRows)
Dim rngBC As Range
Set rngBC = wsZones.Range("B1:C" & lngRows)
Dim rCell As Range
Dim lastCreatedKey As String
Dim rowCount As Integer
Dim currentRowRange As Range
rowCount = 1
lastCreatedKey = ""
With Me.ZonesTree.Nodes
'Clear TreeView control
.Clear
For Each rCell In rngZones
If Not rCell.Text = "" Then
.Add Key:=rCell.Text, Text:=rCell.Text
lastCreatedKey = rCell.Text
Else
Set currentRowRange = rngBC.Rows(rowCount)
.Add Relative:=lastCreatedKey, relationship:=tvwChild, Key:=currentRowRange.Cells(, 2).Text, Text:=currentRowRange.Cells(, 1).Text
End If
rowCount = rowCount + 1
Next rCell
End With
End Sub
Private Sub Treeview1_NodeClick(ByVal Node As MSComctlLib.Node)
Me.Label1.Caption = Node.Key
End Sub
Private Sub CommandButton1_Click()
Unload Me
End Sub
這種樹拾取從以這種方式的片材數據:
---甲--------- ---------乙Ç--------- d
ParentNode
----- ------- ChildNode
------------ ChildNode
------------ ChildNode
ParentNode
------------ ChildNode
------------ ChildNode
ParentNode
------------ ChildNode
等..(你的想法,其excel表......)
什麼是vba代碼選擇/取消選擇框?我一直在尋找很多,無法找到這個簡單問題的答案....
Thx提前!
這是我的想法,但我找不到正確的語法,你能給我一個例子嗎? – Piero 2010-01-05 10:55:15
代碼示例添加到我的第一篇文章,希望可以幫助 – 2010-01-05 11:08:41
謝謝我明天就會處理它併發布我的結果! – Piero 2010-01-05 12:19:38