Salin jumlah sel yang dipilih ke Clipboard

Terkadang butuh waktu yang sangat lama untuk memikirkan beberapa hal. Tetapi ketika mereka SUDAH ditemukan, setelah fakta mereka tampak jelas dan bahkan dangkal. Dari seri "apa, itu mungkin?".

Dari versi pertama, bilah status di bagian bawah jendela Microsoft Excel secara tradisional menampilkan total untuk sel yang dipilih:

Salin jumlah sel yang dipilih ke Clipboard

Jika diinginkan, Anda bahkan dapat mengklik kanan pada hasil ini dan memilih dari menu konteks fungsi mana yang ingin kita lihat:

Salin jumlah sel yang dipilih ke Clipboard

Dan baru-baru ini, dalam pembaruan Excel terbaru, pengembang Microsoft menambahkan fitur sederhana namun cerdik – sekarang ketika Anda mengklik hasil ini, mereka akan disalin ke clipboard!

Salin jumlah sel yang dipilih ke Clipboard

Kecantikan 

Tapi bagaimana dengan mereka yang belum (atau sudah?) memiliki versi Excel seperti itu? Di sinilah makro sederhana dapat membantu.

Menyalin jumlah sel yang dipilih ke Clipboard menggunakan makro

Buka di tab pembangun (Pengembang) editor Visual Basic atau gunakan pintasan keyboard ini lain+F11. Masukkan modul kosong baru melalui menu Sisipkan – Modul dan salin kode berikut di sana:

Sub SumSelected() If TypeName(Selection) <> "Range" Kemudian Keluar dari Sub Dengan GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection) .PutInClipboard Diakhiri Dengan End Sub  

Logikanya sederhana:

  • Pertama datang "perlindungan dari orang bodoh" - kami memeriksa apa yang sebenarnya disorot. Jika tidak sel yang dipilih (tetapi, misalnya, bagan), maka keluar dari makro.
  • Kemudian menggunakan perintah Dapatkan objek kita membuat objek data baru di mana jumlah sel yang dipilih akan disimpan nanti. Kode alfanumerik yang panjang dan tidak dapat dipahami sebenarnya adalah tautan ke cabang registri Windows tempat perpustakaan berada Perpustakaan objek Microsoft Forms 2.0, yang dapat membuat objek seperti itu. Terkadang trik ini juga disebut pengikatan terlambat implisit. Jika Anda tidak menggunakannya, maka Anda harus membuat tautan ke perpustakaan ini di file melalui menu Alat — Referensi.
  • Jumlah sel yang dipilih dianggap sebagai perintah Lembar KerjaFunction.Sum(Seleksi), dan kemudian jumlah yang dihasilkan ditempatkan di clipboard dengan perintah Letakkan Di Papan Klip

Untuk kemudahan penggunaan, Anda tentu saja dapat menetapkan makro ini ke pintasan keyboard menggunakan tombol Macro tab pembangun (Pengembang — Makro).

Dan jika Anda ingin melihat apa yang sebenarnya disalin setelah menjalankan makro, Anda dapat mengaktifkan panel Clipboard menggunakan panah kecil di sudut kanan bawah grup yang sesuai di Utama (Rumah) tab:

Salin jumlah sel yang dipilih ke Clipboard

Bukan hanya jumlahnya

Jika, selain jumlah dangkal, Anda menginginkan sesuatu yang lain, maka Anda dapat menggunakan salah satu fungsi yang diberikan objek kepada kami Lembar KerjaFungsi:

Salin jumlah sel yang dipilih ke Clipboard

Misalnya, ada:

  • Jumlah – jumlah
  • Rata-rata – rata-rata aritmatika
  • Hitung – jumlah sel dengan angka
  • CountA – jumlah sel yang terisi
  • CountBlank – jumlah sel kosong
  • Min – nilai minimum
  • Maks – nilai maksimum
  • Median – median (nilai tengah)
  • … Dll.

Termasuk filter dan kolom baris tersembunyi

Bagaimana jika baris atau kolom disembunyikan (secara manual atau dengan filter) dalam rentang yang dipilih? Agar tidak memperhitungkannya dalam total, kita perlu sedikit memodifikasi kode kita dengan menambahkan objek Seleksi milik Sel Khusus(xlCellTypeVisible):

Sub SumVisible() If TypeName(Selection) <> "Range" Kemudian Keluar Sub Dengan GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.SpecialCells(xlCellTypeVisible)) . PutInClipboard Akhiri Dengan Sub Akhir  

Dalam hal ini, penghitungan fungsi total apa pun hanya akan diterapkan ke sel yang terlihat.

Jika Anda membutuhkan formula hidup

Jika Anda bermimpi, Anda dapat membuat skenario ketika lebih baik menyalin bukan angka (konstanta), tetapi formula hidup ke dalam buffer, yang menghitung total yang kita butuhkan untuk sel yang dipilih. Dalam hal ini, Anda harus merekatkan rumus dari fragmen, menambahkannya penghapusan tanda dolar dan mengganti koma (yang digunakan sebagai pemisah antara alamat beberapa rentang yang dipilih di VBA) dengan titik koma:

Sub SumFormula() If TypeName(Selection) <> "Range" Kemudian Keluar Sub Dengan GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & Replace(Replace(Selection. Address, ",", ";"), "$", "") & ")" .PutInClipboard Diakhiri Dengan End Sub  

Penjumlahan dengan syarat tambahan

Dan, akhirnya, untuk benar-benar maniak, Anda dapat menulis makro yang akan meringkas tidak semua sel yang dipilih, tetapi hanya yang memenuhi kondisi yang diberikan. Jadi, misalnya, makro akan terlihat seperti itu menempatkan jumlah sel yang dipilih ke dalam Buffer, jika nilainya lebih besar dari 5 dan pada saat yang sama diisi dengan warna apa pun:

 Sub CustomCalc() Dim myRange As Range If TypeName(Selection) <> "Range" Kemudian Keluar Sub Untuk Setiap sel Di Seleksi Jika cell.Value > 5 Dan cell.Interior.ColorIndex <> xlNone Kemudian Jika myRange Bukan Apa-apa Maka Tetapkan myRange = cell Else Set myRange = Union(myRange, cell) End If End If Next cell With GetObject("Baru:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(myRange) .PutInClipboard Akhiri Dengan End Sub  

Seperti yang dapat Anda bayangkan dengan mudah, kondisi dapat diatur sepenuhnya – hingga format sel – dan dalam jumlah berapa pun (termasuk dengan menautkannya bersama dengan operator logika atau atau dan). Ada banyak ruang untuk imajinasi.

  • Konversi rumus menjadi nilai (6 cara)
  • Apa itu makro, bagaimana menggunakannya, di mana memasukkan kode Visual Basic
  • Informasi yang berguna di bilah status Microsoft Excel

Tinggalkan Balasan