Warna carta daripada sel dengan datanya

Perumusan masalah

Saya ingin lajur pada histogram (atau kepingan pada carta pai, dsb.) mempunyai warna secara automatik yang digunakan untuk mengisi sel yang sepadan dengan data sumber:

Menjangkakan tangisan yang terkejut dan marah dari rakan-rakan individu, perlu diingat bahawa, sudah tentu, warna isian dalam rajah juga boleh ditukar secara manual (klik kanan pada lajur - Format titik/siri (Formatkan titik/siri data) dan lain-lain - tiada siapa yang membantah. Tetapi dalam praktiknya, terdapat banyak situasi apabila lebih mudah dan senang untuk melakukan ini secara langsung dalam sel dengan data, dan kemudian carta harus dicat semula secara automatik. Cuba, sebagai contoh, untuk menetapkan isian mengikut rantau untuk lajur dalam carta ini:

Saya fikir anda mendapat idea itu, bukan?

Penyelesaian

Tiada apa-apa kecuali makro boleh melakukan ini. Oleh itu, kami buka Editor Visual Basic daripada tab pemaju (Pembangun — Editor Visual Basic) atau tekan pintasan papan kekunci Alt + F11, masukkan modul kosong baharu melalui menu Sisipan – Modul dan salin teks makro sedemikian di sana, yang akan melakukan semua kerja:

Sub SetChartColorsFromDataCells() Jika TypeName(Selection) <> "ChartArea" Kemudian MsgBox "Сначала выделите диаграмму!" Keluar Sub End Jika Set c = ActiveChart Untuk j = 1 Hingga c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ","") Set r = Julat(m(2)) For i = 1 Kepada r.Cells.Count c.SeriesCollection(j).Mata(i).Format.Fill.ForeColor.RGB = _ r.Sel(i).Interior.Color Next i Next j End Sub  

Anda kini boleh menutup Visual Basic dan kembali ke Excel. Menggunakan makro yang dicipta adalah sangat mudah. Pilih carta (kawasan carta, bukan kawasan plot, grid atau lajur!):

dan jalankan makro kami dengan butang Makro tab pemaju (Pembangun — Makro) atau dengan pintasan papan kekunci Alt + F8. Dalam tetingkap yang sama, dalam kes penggunaan yang kerap, anda boleh menetapkan pintasan papan kekunci kepada makro menggunakan butang Parameter (Pilihan).

PS

Satu-satunya lalat dalam salap adalah kemustahilan menggunakan fungsi yang sama untuk kes di mana warna diberikan kepada sel data sumber menggunakan peraturan pemformatan bersyarat. Malangnya, Visual Basic tidak mempunyai alat terbina dalam untuk membaca warna ini. Sudah tentu, terdapat "tongkat" tertentu, tetapi ia tidak berfungsi untuk semua kes dan tidak dalam semua versi.

  • Apakah makro, cara menggunakannya, tempat untuk memasukkan kod makro dalam Visual Basic
  • Pemformatan Bersyarat dalam Excel 2007-2013
  • Perkara Baharu dalam Carta dalam Excel 2013

Sila tinggalkan balasan anda