Excel VBA - 使用代码将 ActiveX TreeView 控件添加到 sheet
Excel VBA - Add an ActiveX TreeView Control to sheet with code
我正在尝试在 sheet 上创建一个 ActiveX TreeView 控件并通过代码命名它。
有趣的是,当我复制 sheet 时,TreeView 控件不会随之复制,所以我的解决方法是通过代码插入控件。我四处寻找,找不到任何关于用代码创建它的信息。
有人知道怎么做吗?
请尝试下一段代码。只为指导您的方法:
Sub AddTreeControl()
Dim sh As Worksheet, TrC As OLEObject, TC As Object
Set sh = ActiveSheet
Set TrC = sh.OLEObjects.Add(ClassType:="MSComctlLib.TreeCtrl.2", link:=False _
, DisplayAsIcon:=False, left:=200, top:=70, width:=150, height:= _
200)
Set TC = TrC.Object
With TrC
.Name = "TreeControlX"
.Select
End With
With TC
.nodes.Add Key:="item 1", Text:="Parent 1"
.nodes.Add "item 1", tvwChild, Key:="one", Text:="ITEM 1, Child node 1"
.nodes.Add "item 1", tvwChild, "two", "ITEM 1, Child node 2"
.nodes.Add Key:="item 2", Text:=" Parent 2"
.nodes.Add Key:="item 3", Text:=" Parent 3"
End With
End Sub
谢谢 FaneDuru。
这是我想出的:
Sub Test()
'Create an ActiveX TreeView, assign dimensions, and name
With Sheets("Sheet1").OLEObjects.Add(ClassType:="MSComctlLib.TreeCtrl.2",_
Left:=55, Top:=450, Width:=330, Height:=400)
.Name = "InsertNameHere"
End With
End Sub
我正在尝试在 sheet 上创建一个 ActiveX TreeView 控件并通过代码命名它。
有趣的是,当我复制 sheet 时,TreeView 控件不会随之复制,所以我的解决方法是通过代码插入控件。我四处寻找,找不到任何关于用代码创建它的信息。
有人知道怎么做吗?
请尝试下一段代码。只为指导您的方法:
Sub AddTreeControl()
Dim sh As Worksheet, TrC As OLEObject, TC As Object
Set sh = ActiveSheet
Set TrC = sh.OLEObjects.Add(ClassType:="MSComctlLib.TreeCtrl.2", link:=False _
, DisplayAsIcon:=False, left:=200, top:=70, width:=150, height:= _
200)
Set TC = TrC.Object
With TrC
.Name = "TreeControlX"
.Select
End With
With TC
.nodes.Add Key:="item 1", Text:="Parent 1"
.nodes.Add "item 1", tvwChild, Key:="one", Text:="ITEM 1, Child node 1"
.nodes.Add "item 1", tvwChild, "two", "ITEM 1, Child node 2"
.nodes.Add Key:="item 2", Text:=" Parent 2"
.nodes.Add Key:="item 3", Text:=" Parent 3"
End With
End Sub
谢谢 FaneDuru。
这是我想出的:
Sub Test()
'Create an ActiveX TreeView, assign dimensions, and name
With Sheets("Sheet1").OLEObjects.Add(ClassType:="MSComctlLib.TreeCtrl.2",_
Left:=55, Top:=450, Width:=330, Height:=400)
.Name = "InsertNameHere"
End With
End Sub