Создание столбчатой ​​диаграммы из значений словаря в VBA - PullRequest
0 голосов
/ 21 июля 2011

Мне нужно создать столбчатую диаграмму из значений, которые я сохранил в словаре (Set dict = CreateObject ("Scripting.Dictionary")) в VBA. Ось X - это ключи, а ось Y - это значения. Есть ли способ сделать это?

Ответы [ 2 ]

0 голосов
/ 15 марта 2018

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

Я использую массивы для хранения данных из словаря сценариев.Затем массивы предоставляют исходные данные для графика.

Sub DictToChart()

    'Arrays for graph
    Dim xinput As Variant
    Dim yinput As Variant

    'Example dictionary
    Dim dict As Scripting.Dictionary
    Set dict = New Scripting.Dictionary

    'Populate dictionary
    dict.Add 0, 0
    dict.Add 10, 1
    dict.Add 20, 2
    dict.Add 30, 3
    dict.Add 40, 4

    'Populate arrays for graph
    ReDim xinput(0 To dict.Count - 1)
    ReDim yinput(0 To dict.Count - 1)

    For i = 0 To dict.Count - 1
        xinput(i) = dict.Keys(i)
        yinput(i) = dict.Items(i)
    Next i

    'Create graph
    ActiveSheet.Shapes.AddChart(xlColumnClustered).Select
    ActiveChart.SeriesCollection.NewSeries

    With ActiveChart
        .SeriesCollection(1).xvalues = xinput
        .SeriesCollection(1).Values = yinput
    End With


End Sub
0 голосов
/ 29 июля 2011

Попробуйте это:

Public Sub WriteDictionary()

    Dim dict As Variant
    Dim currRow As Integer


    Set dict = CreateObject("Scripting.Dictionary")
    currRow = 1

    dict.Add "key 1", "data 1"
    dict.Add "key 2", "data 2"

    For Each Key In dict.Keys
        Range("A" & currRow).Formula = Key
        Range("B" & currRow).Formula = dict(Key)
        currRow = currRow + 1
    Next Key

    Set dict = Nothing

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...