დიაგრამის ფერი უჯრედებიდან მისი მონაცემებით

პრობლემის ფორმულირება

მსურს, რომ ჰისტოგრამაზე სვეტებს (ან ტორტების დიაგრამაზე და ა.შ. ნაჭრებს) ავტომატურად ჰქონდეს ფერი, რომელიც გამოყენებული იყო შესაბამისი უჯრედების წყაროს მონაცემებით შესავსებად:

ცალკეული ამხანაგების გაკვირვებული და აღშფოთებული ტირილის მოლოდინში, უნდა აღინიშნოს, რომ, რა თქმა უნდა, დიაგრამის შევსების ფერი ასევე შეიძლება შეიცვალოს ხელით (დააწკაპუნეთ მაუსის მარჯვენა ღილაკით სვეტზე - წერტილი/სერიის ფორმატი (მონაცემთა წერტილის/სერიის ფორმატირება) და ა.შ – არავინ კამათობს. მაგრამ პრაქტიკაში, არსებობს უამრავი სიტუაცია, როდესაც უფრო ადვილი და მოსახერხებელია ამის გაკეთება პირდაპირ უჯრედებში მონაცემებით, შემდეგ კი სქემა ავტომატურად უნდა მოხატულიყო. სცადეთ, მაგალითად, დააყენოთ შევსება ამ დიაგრამის სვეტებისთვის რეგიონების მიხედვით:

ვფიქრობ, გესმით იდეა, არა?

Solution

ამას მაკროს გარდა ვერაფერი გააკეთებს. ამიტომ, ჩვენ ვხსნით Visual Basic რედაქტორი ჩანართიდან დეველოპერი (დეველოპერი - Visual Basic რედაქტორი) ან დააჭირეთ კლავიატურის მალსახმობს Alt + F11მენიუში ჩადეთ ახალი ცარიელი მოდული ჩასმა – მოდული და დააკოპირეთ ასეთი მაკროს ტექსტი, რომელიც შეასრულებს ყველა სამუშაოს:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" მაშინ MsgBox "Сначала выделите диаграмму!" გასვლა ქვე დასრულებიდან თუ კომპლექტი c = ActiveChart For j = 1 to c.SeriesCollection.Count f = c.SeriesCollection(j).ფორმულა m = Split(f, ",") კომპლექტი r = დიაპაზონი(m(2)) i-სთვის = 1 r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color შემდეგი i შემდეგი j ბოლო ქვე  

ახლა შეგიძლიათ დახუროთ Visual Basic და დაუბრუნდეთ Excel-ს. შექმნილი მაკროს გამოყენება ძალიან მარტივია. აირჩიეთ დიაგრამა (დიაგრამის ფართობი, არა ნაკვეთის ფართობი, ბადე ან სვეტები!):

და გაუშვით ჩვენი მაკრო ღილაკით Macros tab დეველოპერი (დეველოპერი - მაკრო) ან კლავიატურის მალსახმობით Alt + F8. იმავე ფანჯარაში, ხშირი გამოყენების შემთხვევაში, შეგიძლიათ ღილაკის გამოყენებით მაკროს კლავიატურის მალსახმობი მიანიშნოთ პარამეტრები (Პარამეტრები).

PS

მალამოში ერთადერთი ბუზი არის მსგავსი ფუნქციის გამოყენების შეუძლებლობა იმ შემთხვევებისთვის, როდესაც ფერი ენიჭება წყაროს მონაცემების უჯრედებს პირობითი ფორმატირების წესების გამოყენებით. სამწუხაროდ, Visual Basic-ს არ აქვს ჩაშენებული ინსტრუმენტი ამ ფერების წასაკითხად. არსებობს, რა თქმა უნდა, გარკვეული „ყავარჯნები“, მაგრამ ისინი არ მუშაობს ყველა შემთხვევაში და არა ყველა ვერსიაში.

  • რა არის მაკროები, როგორ გამოვიყენოთ ისინი, სად ჩავსვათ მაკრო კოდი Visual Basic-ში
  • პირობითი ფორმატირება Excel-ში 2007-2013 წწ
  • რა არის ახალი ჩარტებში Excel 2013-ში

დატოვე პასუხი