रेंज से नहीं चार्ट (उदा। डबल वाई-एक्सिस लाइन चार्ट) बनाना संभव है, लेकिन ऐरे डेटा से? यदि हां, तो कैसे?ऐरे डेटा से चार्ट बनाएं और
उत्तर
हां। आप चार्ट पर Series
ऑब्जेक्ट के XValues
और Values
गुणों के लिए सरणी असाइन कर सकते हैं। उदाहरण:
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
आप एक्सेल 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 वर्णों के नामित सरणी के लिए लंबाई सीमा दिखाई देती है।
का उपयोग करके असीमित संख्या को हैक करने की आवश्यकता नहीं है जिज्ञासा से, क्या 'ExecuteExcel4Macro' चाल 2007 और बाद में काम नहीं करती है? इसने Excel 2007 में इसे आज़माया और चार्ट में कोई डेटा नहीं है। –
कोई पुराना एक्सेल 4 आदेश बाद के संस्करणों में चार्ट पर काम नहीं कर रहा है जो परेशान है। –
ठीक है, धन्यवाद। दिलचस्प/भयानक दृष्टिकोण के लिए +1! –
संभावित डुप्लिकेट [रनटाइम पर एक्सेल चार्ट के गतिशील डेटा को सेट करने के लिए और Excel नहीं। श्रेणी] (http://stackoverflow.com/questions/7380266/to-set-dynamic-data-of-excel-chart-at -रंटिम-एंड-न-एक्सेल-रेंज) – assylias
@ वासिलियास: यह एक स्पष्ट डुप्लिकेट नहीं है ... भाषा सी # है, वीबीए नहीं। अवधारणाएं काफी समान हैं, लेकिन एक कामकाजी उदाहरण बिल्कुल वैसा नहीं दिखता है। –
@ वासिलियास प्लस मैंने दूसरे प्रश्न को नहीं देखा क्योंकि वास्तव में उत्तर दिया जा रहा है – brettdj