Results 1 to 1 of 1
Hybrid View
-
26th October 2017 13:06 #1
Excel VBA - äèíàìè÷íî ñåëåêòèðàíå íà êëåòêè?
Çäðàâåéòå!
Ïúðâî èñêàì äà êàæà, ÷å ñúì òîòàëíî íåçàïîçíàò ñ ïðîãðàìèðàíåòî è èìàì ìèíèìàëíè çíàíèÿ ïî VBA. Âúïðåêè òîâà ìè ñå íàëàãà äà ïîñòðîÿ íÿêîëêî ìàêðîòà â ñðàâíèòåëíî ïðîñòà òàáëèöà. Òàáëèöàòà ñå ñúñòîè îò öåíèòå íà ðàçëè÷íè ôèíàíñîâè èíñòðóìåíòè çà ðàçëè÷åí ïåðèîä îò âðåìå, êîéòî ñå ïðîìåíÿ îò ïîòðåáèòåëÿ. Öåëòà å, ÷ðåç ìàêðîòà, äà ñå ïîñòðîÿò àâòîìàòè÷íî ãðàôèêè íà áàçàòà íà òàçè èíôîðìàöèÿ, êîÿòî å ïðîìåíëèâà è ìîæå äà å ñ ðàçëè÷íà äúëæèíà (äà êàæåì îò C9 äî Ñ*, êúäåòî * å ïîñëåäíàòà êëåòêà â êîÿòî èìà èíôîðìàöèÿ).
×ðåç çàïèñâàíå íà ìàêðîòà è ÷ðåç ìàëêî ïðîìåíè îò ìîÿ ñòðàíà ñ ïîìîùòà íà Googlå, ñå ñïðàâèõ ñ åäèí åòàï îò çàäà÷àòà, à èìåííî ïîñòðîÿâàíåòî íà ãðàôèêè çà öåíàòà íà äâà èíñòðóìåíòà â îïðåäåëåí ïåðèîä îò âðåìå, ïîîòäåëíî. Êîäúò è çà äâåòå å ìíîãî áëèçúê, åòî ïðèìåð:
Ñëåä òîâà ñå ïðîäúëæàâà ñ ôîðìàòèðàíå íà ñàìàòà ãðàôèêà, ñ êîåòî ïðîáëåìè íÿìà.Code:Dim ch As Shape lastrow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "B").End(xlUp).Row ActiveSheet.Range("B9:C" & lastrow).Select ActiveSheet.Shapes.AddChart.Select Set ch = ActiveSheet.Shapes(1) ch.Name = "Security 1" ActiveChart.ChartType = xlLine ActiveChart.SetSourceData Source:=Range("Model!$B$9:$C$" & lastrow)
Öåëòà ìè å äà êîìáèíèðàì èíôîðìàöèÿòà çà äâàòà èíñòðóìåíòà è äà ìîãà äà ÿ ïðåäñòàâÿ â åäíà ãðàôèêà ñ äâå ëèíèè, çà åäèí è ñúùè ïåðèîä îò âðåìå, eòî òàêà:

Ñ äðóãè äóìè êàê ìîãà äà íàêðàì êîäúò ìè äà ïîñòðîè ãðàôèêà íà áàçà ïðîìåíëèâà èíôîðìàöèÿ â òðè êîëîíè: ïúðâàòà çà öåíèòå íà ïúðâèÿ èíñòðóìåíò, âòîðàòà çà öåíèòå íà âòîðèÿ è òðåòàòà çà âðåìåâèÿ ïåðèîä. Ñ äðóãè äóìè - êàê äà íàêàðàì êîäúò ìè äà ñåëåêòèðà âñè÷êè êëåòêè â òåçè òðè êîëîíè (êîèòî ñà ñ ïðîìåíëèâ áðîé, â çàâèñèìîñò îò íà÷àëíàòà è êðàéíàòà äàòà, êîÿòî ïîòðåáèòåëÿò ùå âúâåäå) è äà ãè èçïîëçâà çà íàïðàâàòà íà ãðàôèêàòà?
Òîåñò, êàêâî äà èìà òóê (íà ìÿñòîòî íà æúëòîòî)?
Áëàãîäàðÿ âè!Code:ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(1).Name = "=Èìå íà òàáà!$B$8" ActiveChart.SeriesCollection(1).Values = ******* ActiveChart.SeriesCollection(2).Name = "=Èìå íà òàáà!$E$8" ActiveChart.SeriesCollection(2).Values = ******* ActiveChart.SeriesCollection(2).XValues = *******
EDIT: Ñïðàâèõ ñå ñàì, áëàãîäàðÿ.Last edited by te0o; 26th October 2017 at 18:25.
Dell XPS 13 9300 | i7-1065G7 | 16GB 3733MHz LPDDR4x | 512GB M.2 PCIe NVMe SSD




Reply With Quote
Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè