Warna bagan dari sel dengan datanya

Rumusan masalah

Saya ingin kolom pada histogram (atau irisan pada diagram lingkaran, dll.) untuk secara otomatis memiliki warna yang digunakan untuk mengisi sel yang sesuai dengan data sumber:

Mengantisipasi teriakan kaget dan marah dari masing-masing kawan, perlu dicatat bahwa, tentu saja, warna isian diagram juga dapat diubah secara manual (klik kanan pada kolom – Format titik/seri (Memformat titik/seri data) dll. – tidak ada yang membantah. Namun dalam praktiknya, ada banyak situasi ketika lebih mudah dan lebih nyaman untuk melakukan ini secara langsung di sel dengan data, dan kemudian bagan tersebut harus dicat ulang secara otomatis. Coba, misalnya, untuk mengatur isian menurut wilayah untuk kolom dalam bagan ini:

Saya pikir Anda mendapatkan ide, kan?

Solusi

Tidak ada apa pun selain makro yang dapat melakukan ini. Oleh karena itu, kami membuka Editor Visual Basic dari tab pembangun (Pengembang — Editor Visual Basic) atau tekan pintasan keyboard Alt + F11, masukkan modul kosong baru melalui menu Sisipkan – Modul dan salin teks makro seperti itu di sana, yang akan melakukan semua pekerjaan:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Kemudian MsgBox "Сначала выделите диаграмму!" Exit Sub End If Set c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ",") Set r = Range(m(2)) For i = 1 To r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Selanjutnya i Selanjutnya j Akhir Sub  

Anda sekarang dapat menutup Visual Basic dan kembali ke Excel. Menggunakan makro yang dibuat sangat sederhana. Pilih bagan (area bagan, bukan area plot, kisi, atau kolom!):

dan jalankan makro kami dengan tombol Macro tab pembangun (Pengembang — Makro) atau dengan pintasan keyboard Alt + F8. Di jendela yang sama, jika sering digunakan, Anda dapat menetapkan pintasan keyboard ke makro menggunakan tombol parameter (Pilihan).

PS

Satu-satunya lalat dalam salep adalah ketidakmungkinan menggunakan fungsi serupa untuk kasus-kasus di mana warna ditetapkan ke sel-sel data sumber menggunakan aturan pemformatan bersyarat. Sayangnya, Visual Basic tidak memiliki alat bawaan untuk membaca warna-warna ini. Tentu saja ada "kruk" tertentu, tetapi mereka tidak berfungsi untuk semua kasus dan tidak di semua versi.

  • Apa itu makro, bagaimana menggunakannya, di mana menyisipkan kode makro di Visual Basic
  • Pemformatan Bersyarat di Excel 2007-2013
  • Apa yang Baru di Bagan di Excel 2013

Tinggalkan Balasan