Создать дерево как представление данных в Excel?

Одним из возможных простых методов (которые могут не соответствовать потребностям разных пользователей) является использование оболочки PROMPT. Это простое решение, которое может быть полезно в некоторых случаях. Вы можете использовать функцию подсказки bash, как в примере ниже:

export PS1='[\t \u@\h]\ 

Приведенная выше команда приведет к изменению приглашения оболочки на:

[HH:MM:SS username@hostname]$ 

Каждый раз, когда вы запускаете команду ( или нажмите Enter), возвращаясь к приглашению оболочки, в приглашении будет отображаться текущее время.

отмечает:
1) имейте в виду, что если вы подождали некоторое время, прежде чем набрать следующую команду, то это время необходимо учитывать, то есть время в приглашении оболочки отображается метка времени, когда отображалось приглашение оболочки, а не при вводе команды. некоторые пользователи предпочитают нажимать клавишу Enter, чтобы получить новое приглашение с новой отметкой времени, прежде чем они будут готовы к следующей команде.
2) Существуют и другие доступные опции и модификаторы, которые можно использовать для изменения приглашения bash, см. (Man bash) для получения более подробной информации.

Приведенная выше команда приведет к изменению приглашения оболочки на:

[HH:MM:SS username@hostname]$ 

Каждый раз, когда вы запускаете команду ( или нажмите Enter), возвращаясь к приглашению оболочки, в приглашении будет отображаться текущее время.

отмечает:
1) имейте в виду, что если вы подождали некоторое время, прежде чем набрать следующую команду, то это время необходимо учитывать, то есть время в приглашении оболочки отображается метка времени, когда отображалось приглашение оболочки, а не при вводе команды. некоторые пользователи предпочитают нажимать клавишу Enter, чтобы получить новое приглашение с новой отметкой времени, прежде чем они будут готовы к следующей команде.
2) Существуют и другие доступные опции и модификаторы, которые можно использовать для изменения приглашения bash, см. (Man bash) для получения более подробной информации.

7
задан Michael Galos 2 July 2009 в 12:09
поделиться

1 ответ

Я уверен, что вы сможете это исправить, но это будет работать с предоставленным вами набором данных.

Перед тем, как начать, вам нужно будет определить два Имена (Insert / Имя / Определить). «Данные» - это диапазон вашего набора данных, «Место назначения» - это место, куда вы хотите переместить дерево.

Sub MakeTree()

    Dim r As Integer
    ' Iterate through the range, looking for the Root
    For r = 1 To Range("Data").Rows.Count
        If Range("Data").Cells(r, 1) = "Root" Then
            DrawNode Range("Data").Cells(r, 2), 0, 0
        End If
    Next

End Sub

Sub DrawNode(ByRef header As String, ByRef row As Integer, ByRef depth As Integer)
'The DrawNode routine draws the current node, and all child nodes.
' First we draw the header text:
    Cells(Range("Destination").row + row, Range("Destination").Column + depth) = header

    Dim r As Integer
    'Then loop through, looking for instances of that text
    For r = 1 To Range("Data").Rows.Count
        If Range("Data").Cells(r, 1) = header Then
        'Bang!  We've found one!  Then call itself to see if there are any child nodes
            row = row + 1
            DrawNode Range("Data").Cells(r, 2), row, depth + 1
        End If
    Next
End Sub
12
ответ дан 6 December 2019 в 21:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: