Salin jumlah sel yang dipilih ke Papan Klip

Kadang-kadang ia mengambil masa yang sangat lama untuk menghasilkan beberapa perkara. Tetapi apabila mereka SUDAH dicipta, selepas fakta mereka kelihatan jelas dan bahkan cetek. Dari siri "apa, mungkin?".

Daripada versi pertama, bar status di bahagian bawah tetingkap Microsoft Excel secara tradisinya memaparkan jumlah untuk sel yang dipilih:

Salin jumlah sel yang dipilih ke Papan Klip

Jika dikehendaki, anda boleh mengklik kanan pada hasil carian ini dan memilih daripada menu konteks dengan tepat fungsi yang ingin kita lihat:

Salin jumlah sel yang dipilih ke Papan Klip

Dan baru-baru ini, dalam kemas kini Excel terkini, pembangun Microsoft menambah ciri yang mudah tetapi bijak - kini apabila anda mengklik pada hasil ini, ia disalin ke papan keratan!

Salin jumlah sel yang dipilih ke Papan Klip

Kecantikan. 

Tetapi bagaimana dengan mereka yang belum (atau sudah?) mempunyai versi Excel sedemikian? Di sinilah makro mudah boleh membantu.

Menyalin jumlah sel yang dipilih ke Papan Klip menggunakan makro

Buka dalam tab pemaju (Pembangun) editor Visual Basic atau gunakan pintasan papan kekunci ini Alt+F11. Masukkan modul kosong baharu melalui menu Sisipan – Modul dan salin kod berikut di sana:

Sub SumSelected() Jika TypeName(Selection) <> "Julat" Kemudian Keluar Sub With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection) .PutInClipboard  

Logiknya mudah:

  • Mula-mula datang "perlindungan daripada orang bodoh" - kami menyemak apa sebenarnya yang diserlahkan. Jika bukan sel dipilih (tetapi, sebagai contoh, carta), kemudian keluar dari makro.
  • Kemudian menggunakan arahan Getobject kami mencipta objek data baharu di mana jumlah sel terpilih kami akan disimpan kemudian. Kod alfanumerik yang panjang dan tidak dapat difahami, sebenarnya, adalah pautan ke cawangan pendaftaran Windows di mana perpustakaan berada Perpustakaan Objek Microsoft Forms 2.0, yang boleh mencipta objek sedemikian. Kadangkala helah ini juga dipanggil pengikatan lewat tersirat. Jika anda tidak menggunakannya, maka anda perlu membuat pautan ke perpustakaan ini dalam fail melalui menu Alat - Rujukan.
  • Jumlah sel yang dipilih dianggap sebagai perintah WorksheetFunction.Sum(Selection), dan kemudian jumlah yang terhasil diletakkan pada papan keratan dengan arahan PutInClipboard

Untuk kemudahan penggunaan, anda boleh, sudah tentu, menetapkan makro ini kepada pintasan papan kekunci menggunakan butang Makro tab pemaju (Pembangun — Makro).

Dan jika anda ingin melihat apa sebenarnya yang disalin selepas menjalankan makro, anda boleh menghidupkan panel Papan Klip menggunakan anak panah kecil di sudut kanan bawah kumpulan yang sepadan pada Utama (Rumah) tab:

Salin jumlah sel yang dipilih ke Papan Klip

Bukan sahaja jumlahnya

Jika, sebagai tambahan kepada jumlah cetek, anda menginginkan sesuatu yang lain, maka anda boleh menggunakan mana-mana fungsi yang objek itu berikan kepada kami Lembaran KerjaFungsi:

Salin jumlah sel yang dipilih ke Papan Klip

Sebagai contoh, terdapat:

  • Jumlah – jumlah
  • Purata – min aritmetik
  • Kira – bilangan sel dengan nombor
  • CountA – bilangan sel yang diisi
  • CountBlank – bilangan sel kosong
  • Min – nilai minimum
  • Maks – nilai maksimum
  • Median – median (nilai pusat)
  • … dan lain-lain.

Termasuk penapis dan lajur baris tersembunyi

Bagaimana jika baris atau lajur disembunyikan (secara manual atau oleh penapis) dalam julat yang dipilih? Untuk tidak mengambil kiranya dalam jumlah keseluruhan, kami perlu mengubah suai sedikit kod kami dengan menambah pada objek Pemilihan harta SpecialCells(xlCellTypeVisible):

Sub SumVisible() Jika TypeName(Selection) <> "Julat" Kemudian Keluar Sub With GetObject("Baharu:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.SpecialCellCell)T(xSpecialVisible)T PutInClipboard Tamat Dengan End Sub  

Dalam kes ini, pengiraan sebarang fungsi jumlah akan digunakan pada sel yang boleh dilihat sahaja.

Jika anda memerlukan formula hidup

Jika anda bermimpi, anda boleh membuat senario apabila lebih baik untuk menyalin bukan nombor (malar), tetapi formula hidup ke dalam penimbal, yang mengira jumlah yang kita perlukan untuk sel yang dipilih. Dalam kes ini, anda perlu melekatkan formula daripada serpihan, menambah padanya penyingkiran tanda dolar dan menggantikan koma (yang digunakan sebagai pemisah antara alamat beberapa julat terpilih dalam VBA) dengan koma bertitik:

Sub SumFormula() Jika TypeName(Pilihan) <> "Julat" Kemudian Keluar Sub Dengan GetObject("Baharu:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & Ganti(Ganti(Pilihan. Alamat, ",", ";"), "$", "") & ")" .PutInClipboard Tamat Dengan End Sub  

Penjumlahan dengan syarat tambahan

Dan, akhirnya, untuk gila sepenuhnya, anda boleh menulis makro yang akan meringkaskan bukan semua sel yang dipilih, tetapi hanya yang memenuhi syarat yang diberikan. Jadi, sebagai contoh, makro akan kelihatan seperti itu meletakkan jumlah sel yang dipilih ke dalam Penampan, jika nilainya lebih besar daripada 5 dan pada masa yang sama ia diisi dengan sebarang warna:

 Sub CustomCalc() Malapkan myJulat Sebagai Julat Jika TypeName(Pilihan) <> "Julat" Kemudian Keluar Sub Untuk Setiap sel Dalam Pilihan Jika cell.Value > 5 Dan sel.Interior.ColorIndex <> xlTiada Kemudian Jika myRange Tiada Apa-apa Kemudian Tetapkan myRange = sel Else Set myRange = Union(myRange, cell) End If End If Next cell With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myRange) .PutInClipboard End With End  

Seperti yang anda boleh bayangkan dengan mudah, syarat boleh ditetapkan sama sekali - sehingga format sel - dan dalam sebarang kuantiti (termasuk dengan memautkannya bersama-sama dengan operator logik atau atau dan). Terdapat banyak ruang untuk imaginasi.

  • Tukar formula kepada nilai (6 cara)
  • Apakah makro, cara menggunakannya, tempat untuk memasukkan kod Visual Basic
  • Maklumat berguna dalam bar status Microsoft Excel

Sila tinggalkan balasan anda