반응형
범위가 아닌 어레이 데이터에서 차트 생성
Ranges가 아닌 Array 데이터로 차트(예: Double Y-Axis Line Chart)를 작성할 수 있습니까?만약 그렇다면, 어떻게?
네. 어레이를 할당하여XValues
그리고.Values
의 특성Series
도표상의 객체예:
Dim c As Chart
Dim s As Series
Dim myData As Variant
Set c = ActiveChart ' Assumes a chart is currently active in Excel...
Set s = c.SeriesCollection(1)
myData = Array(9, 6, 7, 1) ' or whatever
s.Values = myData
Excel 2007 이후로는 그래프 시리즈에 어레이를 할당할 수 있지만 이전 버전에서는 각 시리즈의 길이에 255자 제한이 있는 것으로 알고 있습니다.이 제한을 회피하기 위해 사용한 방법이 다음 랜덤 워크 예시에 나와 있습니다.
Sub ChartArray()
Dim x(0 To 1000, 0 To 0) As Double
Dim y(0 To 1000, 0 To 0) As Double
x(0, 0) = 0
y(0, 0) = 0
For i = 1 To 1000
x(i, 0) = i
y(i, 0) = y(i - 1, 0) + WorksheetFunction.NormSInv(Rnd())
Next i
Charts.Add
ActiveChart.ChartType = xlXYScatterLinesNoMarkers
With ActiveChart.SeriesCollection
If .Count = 0 Then .NewSeries
If Val(Application.Version) >= 12 Then
.Item(1).Values = y
.Item(1).XValues = x
Else
.Item(1).Select
Names.Add "_", x
ExecuteExcel4Macro "series.x(!_)"
Names.Add "_", y
ExecuteExcel4Macro "series.y(,!_)"
Names("_").Delete
End If
End With
ActiveChart.ChartArea.Select
End Sub
다른 방법으로는 배열에 이름을 할당한 다음(위의 회피책과 유사) 할당된 이름을 참조하도록 시리즈를 설정하는 방법이 있습니다.xls 형식으로 저장하기만 하면 모든 버전에서 정상 작동하지만 새로운 xlsx/xlsm/xlsb 형식으로 저장할 때 8192자로 명명된 배열에 길이 제한이 있는 것으로 보입니다.
언급URL : https://stackoverflow.com/questions/10570023/create-chart-from-array-data-and-not-range
반응형
'itsource' 카테고리의 다른 글
UILabel 텍스트를 가운데에 정렬 (0) | 2023.04.12 |
---|---|
OSX 터미널에서 링크를 클릭할 수 있는 방법이 있습니까? (0) | 2023.04.12 |
LF를 CRLF로 대체하는 Git (0) | 2023.04.12 |
WPF: 이미지를 원래 크기로 표시하는 방법 (0) | 2023.04.12 |
Bash에서 문자열에서 마지막 n자를 제거하려면 어떻게 해야 합니까? (0) | 2023.04.12 |