Мне интересно, есть ли способ написать макрос, который создает гистограмму с несколькими рядами (в зависимости от ввода) без использования Range? Чтобы заставить его работать на данный момент, мне нужно выписать вывод на листе, прежде чем я смогу его использовать. Это кажется невероятно ненужным. Есть ли альтернативный способ?
Sub CreateBarGraph()
Set table = Database_U.ListObjects("Table_U") '
Dim ColumnProjektID As String, ColumnVarde As String
Dim Varde As Variant, ProjektID As Variant
ColumnProjektID = "ProjektID"
ColumnVarde = "Varde"
Dim sheet As Worksheet
Set sheet = GraphSheet
Dim cht As ChartObject
Dim i As Integer
i = 1
For Each currentRow In table.ListRows
'The return value consist of a name with letters
Set ProjektID = RetrieveProjektID(currentRow, ColumnProjektID)
GraphSheet.Cells(i, 2) = ProjektID
'The return value consist of a digit/number
Set Varde = RetrieveVarde(currentRow, ColumnVarde)
GraphSheet.Cells(i, 3) = Varde
i = i + 1
Next
Set cht = GraphSheet.ChartObjects.Add(Left:=20, Width:=800, Top:=20, Height:=500)
Dim rng As range
'1/2 of the below feels like a waste of space. I would like to find a
'way to add the source of the data (and create multiple series)
'without writing out the values on a sheet
For j = 1 To i
Set rng = GraphSheet.range(Cells(i, 2), Cells(i, 3))
cht.chart.SeriesCollection.Add Source:=rng
Next i
End Sub
Есть ли альтернативный способ получить тот же результат? Благодарен за помощь!