इस कोड मैं गतिशील Virtual Basic
में चार्ट बनाने के लिए उपयोग है डेटा?हटाएं चार्ट श्रृंखला लेकिन उनके स्वरूपण रखने
उत्तर
मैंने पहले इस मुद्दे को हल किया है। मेरे पास चार्ट हैं जो मैक्रो द्वारा बनाए गए थे, लेकिन यह केवल उन तारीखों पर लागू होता है जिन्हें मैंने बनाया था। तो एक ताज़ा मैक्रो बनाया जो प्रत्येक कार्यपुस्तिका के बाद चलता है। मैंने पहले स्रोत का इस्तेमाल किया और पाया कि यह सब कुछ हटा देता है। फिर केवल श्रृंखला में चले गए। मैं अपना काम यहां पेस्ट कर दूंगा और समझाने की कोशिश करूंगा। त्वरित नेविगेशन के लिए कोड के दूसरे भाग नीचे वहाँ उप aktualizacegrafu कहा जाता है (यदि आप उप generacegrafu()
Sub generacegrafu()
ThisWorkbook.Sheets("List1").CommandButton6.BackColor = &H0&
ThisWorkbook.Sheets("List1").CommandButton6.ForeColor = &HFFFFFF
Dim najdiposlradek As Object
Dim graf As Object
Dim vkladacistring As String
Dim vykreslenysloupec As Integer
Dim hledejsloupec As Object
Dim hledejsloupec2 As Object
Dim kvantifikator As Integer
Dim grafx As ChartObject
Dim shoda As Boolean
Dim jmenografu As String
Dim rngOrigSelection As Range
Cells(1, 1).Select
If refreshcharts = True Then
Set hledejsloupec = Range("11:11").Find(What:=prvnislovo, LookIn:=xlValues)
'dynamicaly generated, prvnislovo is for first word in graph and the macro looks for match in row 11 if it doesnt find any then
Else
'then it looks for match in option box
Set hledejsloupec = Range("11:11").Find(What:=ThisWorkbook.Sheets("List1").ComboBox1.Value, LookIn:=xlValues)
End If
If hledejsloupec Is Nothing Then
MsgBox "Zadaný sloupec v první nabídce nebyl nalezen."
Else
If refreshcharts = True Then
Set hledejsloupec2 = Range("11:11").Find(What:=druheslovo, LookIn:=xlValues)
Else
Set hledejsloupec2 = Range("11:11").Find(What:=ThisWorkbook.Sheets("List1").ComboBox2.Value, LookIn:=xlValues)
End If
If hledejsloupec2 Is Nothing Then
MsgBox "Zadaný sloupec v druhé nabídce nebyl nalezen."
Else
jmenografu = Cells(11, hledejsloupec.Column).Value & "_" & Cells(11, hledejsloupec2.Column).Value
Set najdiposlradek = Range("A:A").Find(What:=Date, LookIn:=xlValues)
Application.ScreenUpdating = False
Set rngOrigSelection = Selection
'This one selects series for new graph to be created
Cells(1048576, 16384).Select
Set graf = ThisWorkbook.Sheets("List1").Shapes.AddChart
rngOrigSelection.Parent.Parent.Activate
rngOrigSelection.Parent.Select
rngOrigSelection.Select 'trouble with annoing excel feature to unselect graphs
Application.ScreenUpdating = True
graf.Select
kvantifikator = 1
Do
shoda = False
For Each grafx In ThisWorkbook.Sheets("List1").ChartObjects
If grafx.Name = jmenografu Then
shoda = True
jmenografu = jmenografu & "(" & kvantifikator & ")"
kvantifikator = kvantifikator + 1
End If
Next grafx
'this checks if graph has younger brother in sheet
'but no we get to the part that matter do not bother playing with source of the graph because I have found it is quite hard to make it work properly
Loop Until shoda = False
'here it starts
ActiveChart.Parent.Name = jmenografu
ActiveChart.SeriesCollection.NewSeries 'add only series!
vkladacistring = "=List1!R12C" & hledejsloupec.Column & ":R" & najdiposlradek.Row & "C" & hledejsloupec.Column 'insert this into series
ActiveChart.SeriesCollection(1).Values = vkladacistring
vkladacistring = "=List1!R11C" & hledejsloupec.Column
ActiveChart.SeriesCollection(1).Name = vkladacistring
vkladacistring = "=List1!R12C" & hledejsloupec2.Column & ":R" & najdiposlradek.Row & "C" & hledejsloupec2.Column
ActiveChart.SeriesCollection(1).XValues = vkladacistring
'here it ends and onward comes formating
ActiveChart.Legend.Delete
ActiveChart.ChartType = xlConeColClustered
ActiveChart.ClearToMatchStyle
ActiveChart.ChartStyle = 41
ActiveChart.ClearToMatchStyle
ActiveSheet.Shapes(jmenografu).Chart.ChartArea.Format.ThreeD.RotationY = 90
ActiveSheet.Shapes(jmenografu).Chart.ChartArea.Format.ThreeD.RotationX = 0
ActiveChart.Axes(xlValue).MajorUnit = 8.33333333333333E-02
ActiveChart.Axes(xlValue).MinimumScale = 0.25
ActiveChart.Walls.Format.Fill.Visible = msoFalse
ActiveChart.Axes(xlCategory).MajorUnitScale = xlMonths
ActiveChart.Axes(xlCategory).MajorUnit = 1
ActiveChart.Axes(xlCategory).BaseUnit = xlDays
End If
End If
Call aktualizacelistboxu
ThisWorkbook.Sheets("List1").CommandButton6.BackColor = &H8000000D
ThisWorkbook.Sheets("List1").CommandButton6.ForeColor = &H0&
End Sub
परिणाम मैंने पाया है के साथ शुरू कोड के ऊपरी भाग में एक संदर्भ को खोजने दफा हो जाओ) आप मदद कर सकता है कि आप पूरी तरह formating नहीं रख सकते हैं जब आप करीब चार्ट क्योंकि चार्ट does not काम के स्रोत बहुत अच्छी तरह से और जब आप इसे हटा कुछ प्रारूप मैं चार्ट की मेरी दिलचस्पी के साथ-साथ
Sub aktualizacegrafu()
Dim grafx As ChartObject
Dim hledejsloupec As Object
Dim hledejsloupec2 As Object
Dim vkladacistring As String
Dim najdiposlradek As Object
For Each grafx In ThisWorkbook.Sheets("List1").ChartObjects
prvnislovo = Left(grafx.Name, InStr(1, grafx.Name, "_") - 1)
druheslovo = Right(grafx.Name, Len(grafx.Name) - InStr(1, grafx.Name, "_"))
'now it checks the names of charts .. the data loads from respective columns that are named the same way so I ussualy choose what statistic I want by choosing the columns needed
'for example I want to reflect my arrivals to work according to the hours I worked or to the date so I set 1st option to arrival and 2nd to date
grafx.Activate
Set najdiposlradek = Range("A:A").Find(What:=Date, LookIn:=xlValues)
Set hledejsloupec = Range("11:11").Find(What:=prvnislovo, LookIn:=xlValues)
If hledejsloupec Is Nothing Then
MsgBox "Hodnota v grafu již není mezi sloupci v tabulce. Aktualizace grafu " & grafx.Name & " bude ukončena."
Else
Set hledejsloupec2 = Range("11:11").Find(What:=druheslovo, LookIn:=xlValues)
If hledejsloupec2 Is Nothing Then
MsgBox "Hodnota v grafu již není mezi sloupci v tabulce. Aktualizace grafu " & grafx.Name & " bude ukončena."
Else
यहाँ
पोस्ट करेंगे खो जाएगा यह स्ट्रिंग में प्रवेश करती है कि वांछित सेल के एड्रेस में मैं हमेशा इसे स्ट्रिंग के रूप में दर्ज करता हूं क्योंकि डीबग के साथ देखना आसान होता है। प्रिंट द्वारा दर्ज की जा रही है
परिणाम इस सूची की तरह लग रहा चेक activechart.seriescollection (1) .values = List1 R12C1 में शीट का अर्थ है:! R13C16 activechart.seriescollection (1) .name = List1 R1C1: R1C15
vkladacistring = "=List1!R12C" & hledejsloupec.Column & ":R" & najdiposlradek.Row & "C" & hledejsloupec.Column
ActiveChart.SeriesCollection(1).Values = vkladacistring
vkladacistring = "=List1!R11C" & hledejsloupec.Column
ActiveChart.SeriesCollection(1).Name = vkladacistring
vkladacistring = "=List1!R12C" & hledejsloupec2.Column & ":R" & najdiposlradek.Row & "C" & hledejsloupec2.Column
ActiveChart.SeriesCollection(1).XValues = vkladacistring
End If
End If
Next grafx
Call aktualizacelistboxu
End Sub
तो इसी का परिणाम है जब आप वास्तव में एक चार्ट में पहले से ही है, लेकिन क्षेत्र में यह लागू होता है मामूली परिवर्तन करना चाहते हैं तो यह formating आशा है कि यह एक बिट में मदद की नहीं तो मैं माफी चाहता हूँ अगर यह रखना था रखता है revard। यह मुझे उत्सुकता से मिला क्योंकि मैं हाल ही में एक ही समस्या को हल कर रहा था यदि आपको कोई और स्पष्टीकरण टिप्पणी की आवश्यकता है और मैं
- 1. डीसी श्रृंखला चार्ट
- 2. हाईचार्ट चार्ट चार्ट पर संख्या स्वरूपण?
- 3. एमएस चार्ट नियंत्रण धुरी स्वरूपण
- 4. d3.js मल्टीलाइन श्रृंखला चार्ट
- 5. एएम चार्ट चार्ट को कैसे हटाएं
- 6. हाईचार्ट्स - एक चार्ट में एकाधिक पाई चार्ट श्रृंखला के लिए चार्ट नाम
- 7. ज़िंग चार्ट एकल श्रृंखला बार चार्ट समूह लेबल
- 8. Google चार्ट तालिका चयन हटाएं
- 9. xticks को हटाएं लेकिन MATLAB
- 10. array_shift लेकिन बनाए रखने कुंजी
- 11. स्वरूपण माइक्रोसॉफ्ट चार्ट नियंत्रण एक्स अक्ष लेबल एक्सेल
- 12. सीएसएस स्वरूपण को एक साथ रखने के लिए
- 13. फ़्लोट चार्ट से डेटा श्रृंखला का रंग प्राप्त करना
- 14. चार्ट श्रृंखला में मूल्य जमा करें - WPF DevExpress
- 15. Highchart (स्तंभ चार्ट): कुछ डेटा लेबल एक श्रृंखला
- 16. समय श्रृंखला
- 17. Mailto: शरीर स्वरूपण
- 18. चार्ट अक्ष
- 19. छिपाएं div लेकिन खाली जगह रखने
- 20. दबाने कंसोल आउटपुट, लेकिन रखने की साजिश
- 21. क्रमबद्ध तत्वों, लेकिन रखने पर कुछ को
- 22. शामिल करें लेकिन एसक्यूएल स्कीमा को हटाएं
- 23. ज़िंग फीड 1 श्रृंखला
- 24. पायथन matplotlib.pyplot पाई चार्ट: बाएं तरफ लेबल को कैसे हटाएं?
- 25. एक Google लाइन चार्ट
- 26. matplotlib: समय-श्रृंखला साजिश
- 27. श्रृंखला
- 28. विंडोजफॉर्म में चार्ट से ग्रिड लाइनों को कैसे हटाएं?
- 29. श्रृंखला
- 30. सिंगल कोट्स को कैसे हटाएं, लेकिन perl
समझाऊंगा तो ऐसा लगता है कि प्रक्रिया का एक महत्वपूर्ण हिस्सा कुछ अतिरिक्त जानकारी के साथ गायब है। जिस तरह से कोड अब प्रक्रिया है 'CopySource_Chart' कभी निष्पादित नहीं होगा। क्या आप कार्यपुस्तिका को प्रकाशित करना चाहते हैं, इसलिए हम उन सेटिंग्स के बारे में बेहतर विचार कर सकते हैं जिन्हें आप रखने की कोशिश कर रहे हैं, आप उन्हें कैसे रखना चाहते हैं ?, आप उनका उपयोग करने की योजना कैसे बनाते हैं? – EEM
मेरे पास एक सवाल है, आपको चार्ट में श्रृंखला को क्यों हटाना है और फिर '.SeriesCollection.NewSeries'' के साथ एक नया निर्माण करना है? क्या यह पहली श्रृंखला के अलावा सभी को हटाने का विकल्प है, फिर इसके लिए डेटा बदलें, ताकि यह पुरानी स्वरूपण रख सके? –
यदि आप प्रस्तावित विकल्प स्वीकार करते हैं, तो इसे केवल एक श्रृंखला के लिए आवश्यक श्रृंखला में से कई को रखने के लिए समायोजित किया जा सकता है। हम उस श्रृंखला की संख्या का उपयोग करते हैं जो हम चाहते हैं (उदाहरण के लिए केवल आपके कोड में केवल एक, लेकिन आपको और अधिक की आवश्यकता हो सकती है), हम उन्हें अपनी स्वरूपण रखने और केवल उनके मानों को संशोधित रखने के लिए रखते हैं, फिर हम शेष श्रृंखला को हटा देते हैं। कृपया मुझे बताएं कि यह कार्यवाही आपके लिए एक विकल्प है, क्योंकि सहेजी गई श्रृंखला का प्रारूप बहुत कठिन लगता है: किसी श्रृंखला के प्रारूप ऑब्जेक्ट में बहुत सारी गुण हैं और 'गहरे संदर्भ' हैं, इसे सहेजने के लिए आसानी से क्लोन नहीं किया जा सकता है .. । –