我有一个带有一个按钮的命令栏。
Private Sub RightClickNode(nodex As MSComctlLib.node)
clicked = None
Dim tv As TreeView
Dim Bar As CommandBar
Set Bar = CommandBars.Add(, msoBarPopup, False, True)
Set tv = getTVSuper
'EXPAND & COLLAPSE ALL RELATED BUTTON(S)
Dim cmdExpand As CommandBarButton
Set cmdExpand = Bar.Controls.Add(msoControlButton)
With cmdExpand
.OnAction = "=Expand('" & nodex.key & "')"
.Caption = "Expand All"
.Style = msoButtonAutomatic
.FaceId = 706
End With
Bar.ShowPopup
If Not clicked = toDelete Then
tv.Nodes(nodex.key).EnsureVisible
tv.Nodes(nodex.key).Selected = True
Else
tv.Nodes(1).EnsureVisible
End If
Set Bar = Nothing
Set cmdExpand = Nothing
Set tv = Nothing
End Sub
Public Function Expand(key)
clicked = toExpand
MsgBox "Hello"
End Function
现在的问题是我在我的项目中以另一种形式使用了相同的代码,我只是接受它并重新调整它。另一方的代码工作正常,但在这一方面没有任何反应。
另外,如果我用简单的 MsgBox 替换OnAction属性中的函数名称:
With cmdExpand
.OnAction = "=MsgBox('" & nodex.key & "')"
.Caption = "Expand All"
.Style = msoButtonAutomatic
.FaceId = 706
End With
我收到了一个格式正确的消息框,其中包含我的nodex的键值(顺便说一句,这是树视图中的一个节点)。
你是否知道发生了什么事情,我现在正在努力奋斗2个小时,这是我已经用另一种形式做过的事情。