Seçili hücrelerin toplamını Panoya kopyala

Bazen bazı şeylerin ortaya çıkması çok uzun zaman alır. Ama ZATEN icat edildiklerinde, aslında bariz ve hatta banal görünüyorlar. “Ne, mümkün müydü?” Dizisinden.

İlk sürümlerden itibaren, Microsoft Excel penceresinin altındaki durum çubuğu, geleneksel olarak seçili hücreler için toplamları gösteriyordu:

Seçili hücrelerin toplamını Panoya kopyala

İstenirse, bu sonuçlara sağ tıklayıp içerik menüsünden tam olarak hangi işlevleri görmek istediğimizi seçmek bile mümkündü:

Seçili hücrelerin toplamını Panoya kopyala

Ve kısa süre önce, en son Excel güncellemelerinde, Microsoft geliştiricileri basit ama dahiyane bir özellik ekledi - şimdi bu sonuçlara tıkladığınızda, panoya kopyalanıyorlar!

Seçili hücrelerin toplamını Panoya kopyala

Güzellik. 

Peki ya henüz (veya zaten?) Excel'in böyle bir sürümüne sahip olmayanlar ne olacak? Basit makroların yardımcı olabileceği yer burasıdır.

Makro kullanarak seçilen hücrelerin toplamını Panoya kopyalama

Sekmede aç geliştirici (Geliştirici) editör Visual Basic veya bu klavye kısayolunu kullanın Ara Toplam+F11. Menü aracılığıyla yeni boş modül ekle Ekle – Modül ve aşağıdaki kodu oraya kopyalayın:

Sub SumSelected() If TypeName(Selection) <> "Range" Sonra Exit Sub With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection) .PutInClipboard End With End Sub  

Mantığı basittir:

  • İlk önce “aptaldan koruma” gelir - tam olarak neyin vurgulandığını kontrol ederiz. Hücreler seçili değilse (ancak örneğin bir grafik), makrodan çıkın.
  • Daha sonra komutu kullanarak nesneyi getir seçilen hücrelerin toplamının daha sonra saklanacağı yeni bir veri nesnesi yaratırız. Uzun ve anlaşılmaz bir alfasayısal kod, aslında, kitaplığın bulunduğu Windows kayıt şubesine bir bağlantıdır. Microsoft Forms 2.0 Nesne Kitaplığı, bu tür nesneler oluşturabilir. Bazen bu numara da denir örtük geç bağlama. Eğer kullanmazsanız, menüden dosyadaki bu kütüphaneye bir bağlantı yapmanız gerekir. Araçlar - Referanslar.
  • Seçilen hücrelerin toplamı bir komut olarak kabul edilir. WorksheetFunction.Sum(Seçim), ve ardından ortaya çıkan miktar komutla panoya yerleştirilir PutInClipboard

Kullanım kolaylığı için, elbette, bu makroyu düğmeyi kullanarak bir klavye kısayoluna atayabilirsiniz. Makrolar çıkıntı geliştirici (Geliştirici — Makrolar).

Ve makroyu çalıştırdıktan sonra tam olarak neyin kopyalandığını görmek istiyorsanız, ilgili grubun sağ alt köşesindeki küçük oku kullanarak Pano panelini açabilirsiniz. Ana (Ev) sekmesi:

Seçili hücrelerin toplamını Panoya kopyala

Sadece miktar değil

Banal miktara ek olarak başka bir şey istiyorsanız, nesnenin bize sağladığı işlevlerden herhangi birini kullanabilirsiniz. Çalışma SayfasıFonksiyonu:

Seçili hücrelerin toplamını Panoya kopyala

Örneğin, var:

  • Toplam - toplam
  • Ortalama – aritmetik ortalama
  • Count – sayı içeren hücre sayısı
  • CountA - doldurulmuş hücre sayısı
  • CountBlank - boş hücre sayısı
  • Min – minimum değer
  • Maks – maksimum değer
  • Medyan – medyan (merkezi değer)
  • … Vb.

Filtreler ve gizli satır sütunları dahil

Seçili aralıkta satırlar veya sütunlar gizliyse (elle veya bir filtreyle) ne olur? Toplamlarda onları hesaba katmamak için, nesneye ekleyerek kodumuzu biraz değiştirmemiz gerekecek. seçim özellik Özel Hücreler(xlCellTypeVisible):

Sub SumVisible() If TypeName(Selection) <> "Range" Sonra Çık Sub With GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText WorksheetFunction.Sum(Selection.SpecialCells(xlCellTypeVisible)) . PutInClipboard End Sub ile Son  

Bu durumda, herhangi bir toplam fonksiyonun hesaplanması yalnızca görünür hücrelere uygulanacaktır.

Yaşayan bir formüle ihtiyacınız varsa

Hayal ederseniz, bir sayıyı (sabit) değil, seçilen hücreler için ihtiyacımız olan toplamları hesaplayan arabelleğe canlı bir formül kopyalamanın daha iyi olduğu senaryolar oluşturabilirsiniz. Bu durumda, formülü parçalardan yapıştırmanız, buna dolar işaretlerinin kaldırılmasını eklemeniz ve virgülü (VBA'da seçilen birkaç aralığın adresleri arasında ayırıcı olarak kullanılır) noktalı virgülle değiştirmeniz gerekecektir:

Sub SumFormula() If TypeName(Selection) <> "Range" Ardından GetObject ile Sub'dan Çıkın("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}") .SetText "=СУММ(" & replace(Replace(Selection. Adres, ",", ";"), "$", "") & ")" .PutInClipboard End With End Sub  

Ek koşullarla toplama

Ve son olarak, tamamen manyaklar için, seçilen tüm hücreleri değil, yalnızca verilen koşulları karşılayanları toplayacak bir makro yazabilirsiniz. Örneğin, değerleri 5'ten büyükse ve aynı zamanda herhangi bir renkle doluysa, seçilen hücrelerin toplamını Tampon'a koyan bir makro görünecektir:

 Sub CustomCalc() MyRange'i Aralık Olarak Dim If TypeName(Selection) <> "Range" ise Sonra Exit Sub Seçimdeki Her hücre için Cell.Value > 5 Ve cell.Interior.ColorIndex <> xlNone Sonra myRange Hiçbir Şey Değilse MyRange Ayarla = cell 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 Sub  

Kolayca tahmin edebileceğiniz gibi, koşullar kesinlikle herhangi bir - hücre biçimlerine kadar - ve herhangi bir miktarda (bunları mantıksal operatörler veya veya ve ile birbirine bağlayarak dahil olmak üzere) ayarlanabilir. Hayal gücü için çok yer var.

  • Formülleri değerlere dönüştürün (6 yol)
  • Makro nedir, nasıl kullanılır, Visual Basic kodu nereye eklenir
  • Microsoft Excel'in durum çubuğundaki faydalı bilgiler

Yorum bırak