Smartart层次结构节点 - 只能填充每个节点的一个文本框架

时间:2015-11-29 11:51:58

标签: excel vba

我正在尝试使用Excel VBA从Excel中的数据自动构建组织结构图。它工作得很好,但是,我想填写两个文本框架。在大文本框架中,我想填写部门的描述,在较小的文本框架中,我想要添加部门代码。 / p>

smartart hierarchy layout

smartart hierarchy layout

我无法找到访问较小文本框架的代码。

Do While Source.Cells(Line, 1) <> ""
    If Source.Cells(Line, 3) = PID Then
        Set ParNode = QNode
        If Source.Cells(Line, 4) = 1 Then
        Set QNode = QNode.AddNode(msoSmartArtNodeDefault, msoSmartArtNodeTypeAssistant)
        Else: Set QNode = QNode.AddNode(msoSmartArtNodeBelow)
        End If
        QNode.TextFrame2.TextRange.Text = Cells(Line, 6)
        'here something needs to be added !!!

        CurPid = Source.Cells(Line, 2)
        If Not Found Then Found = True 'something was find


        'Source.Rows(Line).Delete
        'Line = Line + 1
        Call AddChildNodes(QNode, Source, CurPid)
        Debug.Print ("CurPid" & CurPid)
        Debug.Print ("line" & Line)
        Set QNode = ParNode
    'ElseIf Found Then    'it's sorted,so nothing else can be found
     '   Exit Do
    'Else

    End If
    Line = Line + 1
Loop

1 个答案:

答案 0 :(得分:1)

上面一行(您的CEO文本所在地)

                               QNode.TextFrame2.TextRange.Text
***.SmartArt.AllNodes(...).Shapes(1).TextFrame2.TextRange.Text

您的smartart为空的下方行:

***.SmartArt.AllNodes(...).Shapes(2).TextFrame2.TextRange.Text

您需要检查QNode.Shapes(2).TextFrame2.TextRange.Text是否有效。如果没有,您可能需要使用.parent

source