not: Formülde, C2: C19, ilk görünür hücre değerini döndürmek istediğiniz filtrelenmiş listedir, C2, listenin ilk hücresidir. Bunları ihtiyaç duyduğunuz şekilde değiştirebilirsiniz.
Ardından, filtrelenmiş listedeki ilk görünür hücrenin değerini, yukarıda gösterilen ekran görüntüsü gibi seçilen hücrede doldurulmuş olarak görebilirsiniz.
VBA ile filtreledikten sonra ilk görünür hücrenin değerini bulun ve alın
Filtrelenmiş bir listedeki ilk görünür hücrenin değerini elde etmek için yukarıdaki dizi formülünü kullanmanın yanı sıra, filtrelenmiş bir listenin ilk görünür hücresini hızlı bir şekilde döndürmek için aşağıdaki VBA komut dosyasını çalıştırabilirsiniz. Lütfen aşağıdaki işlemleri yapın.
1. Filtrelenmiş bir listenin ilk görünür hücre değerini yerleştirmek için E8 gibi boş bir hücre seçin.
2. Basın Ara Toplam + F11 anahtarları aynı anda açmak için Uygulamalar için Microsoft Visual Basic pencere.
3. içinde Uygulamalar için Microsoft Visual Basic Pencere, tıklayın Ekle > modül. Ardından aşağıdaki VBA kodunu Modül penceresine kopyalayıp yapıştırın.
VBA kodu: Excel'de filtrelemeden sonra ilk görünür hücrenin değerini bulun ve alın
Sub FirstVisibleCell()
With Worksheets("Sheet1").AutoFilter.Range
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
End With
End Sub
not: Kodda, Sayfa1 filtrelenmiş listeyi içeren sayfa adıdır. "C", ilk görünür değeri almak istediğiniz sütun adıdır. Bunları ihtiyaç duyduğunuz şekilde değiştirebilirsiniz.
3. Tuşuna basın. F5 kodu çalıştırmak için tuşuna basın, ardından C sütununda bulunan filtrelenmiş listenin ilk görünür hücresi hemen E8 hücresine doldurulur.
En İyi Ofis Üretkenliği Araçları
Kutools for Excel Sorunlarınızın Çoğunu Çözer ve Verimliliğinizi% 80 Artırır
Yeniden: Hızlıca yerleştirin karmaşık formüller, grafikler ve daha önce kullandığınız her şey; Hücreleri Şifrele şifre ile; Posta Listesi Oluşturun ve e-posta gönder ...
Süper Formül Çubuğu (birden çok metin ve formül satırını kolayca düzenleyin); Okuma Düzeni (çok sayıda hücreyi kolayca okuyun ve düzenleyin); Filtrelenmiş Aralığa Yapıştır...
Yinelenen veya Benzersiz'i seçin Satırlar; Boş Satırları Seçin (tüm hücreler boştur); Süper Bul ve Bulanık Bul Birçok Çalışma Kitabında; Rastgele Seçim ...
Tam kopya Formül referansını değiştirmeden Birden Çok Hücre; Otomatik Referans Oluştur Birden Çok Sayfaya; Madde İşaretleri Ekle, Onay Kutuları ve daha fazlası ...
Metni Çıkar, Metin Ekle, Konuma Göre Kaldır, Alanı Kaldır; Sayfalama Alt Toplamları Oluşturma ve Yazdırma; Hücre İçeriği ve Yorumları Arasında Dönüştür...
Süper Filtre (filtre şemalarını kaydedin ve diğer sayfalara uygulayın); Gelişmiş Sıralama ay / hafta / gün, sıklık ve daha fazlasına göre; Özel Filtre kalın, italik ...
Çalışma Kitaplarını ve Çalışma Sayfalarını Birleştirin; Tabloları anahtar sütunlara göre birleştirin; Verileri Birden Çok Sayfaya Bölme; Toplu dönüştürme xls, xlsx ve PDF...
300'den fazla güçlü özellik. Office / Excel 2007-2021 ve 365'i destekler. Tüm dilleri destekler. Kuruluşunuzda veya kuruluşunuzda kolay devreye alma. Tam özellikler 30 günlük ücretsiz deneme. 60 günlük para iade garantisi.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Ola,
Como faço para saber o número da celula toda vez que realizo o filtro automático yok vba aracılığıyla döngü?
Örnek olarak, ao filtrar o valor 1, retornou as linhas 2, 3 e 4. linhas 2, 19, 20 olarak próximo loop filtro o valor 22 e retorna yok.
Gerçek para biriminin gerçek değeri, temel filtreler ve gerçekler, gerçekler ve değerler, gerçekler ve gerçekler değil, ilk değerlerden biri mi?
Teşekkür ederim.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Ne yazık ki - ne formül - bu bana #DEĞER hatası veriyor ne de VBA benim için çalışıyor ve bana çalışma zamanı hatası '1004' veriyor
Office 2019'a sahip olduğum için çok kötü ve bu özelliklerden birinin belirli hücreleri filtrelerken çalışmasını bekliyordum... :-(
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu formül işe yarar, ancak boş hücreleriniz varsa formülün hatalı çalışabileceğini ve yalnızca filtrelenmiş sonuçlarda değil, tüm tablodaki ilk değeri seçebileceğini unutmayın. Bulduğum geçici çözüm, boş hücreleri NULL veya boşlukla değiştirmekti.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bu yüzden benim için yukarıdaki cevap o kadar iyi çalışmıyor. 23 binden fazla satır içeren bir çalışma kitabım var ve yıllardır optimize etmek için çalıştığım bir şey. Çözümüm bu sabah bana başka bir ilham kıvılcımı ile geldi.
Bunu yapmak istediğiniz verileri almak için bir TABLO kullandığınızı varsayarsak: Bir satır ("Rownmbr" adını verdim): =CELL([@[YOURFIRSTROW]])
Tablonun dışında bir yerde bir formül yaparsınız:=INDIRECT(CONCATENATE("A";SUBTOTAL(105;Table1[Rownmbr])))
Sadece "A" yı, verileri nereden almak istiyorsanız onunla değiştirin. Benim için bu harika çalışıyor ve belgeyi daha da zorlaştıracak ağır bir formül değil.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Bir masa kullandığım için bu çözüm benim için mükemmel çalıştı. Talimatları takip etmek zordu, bu yüzden umarım bu açıklama biraz daha net olacaktır.
"Table_Name" adında bir excel tablonuz olduğunu varsayalım. Öncelikle tablonuzda yeni bir sütun oluşturun ve ona "RowNumber" adını verin.
Bu yeni sütuna, "=SATIR([@SatırNumarası])" formülünü girin, bu daha sonra yeni sütunu
İlk görünür değeri görüntülemek istediğiniz hücreye "=DOLAYLI("A"&ARA TOPLAM(105,Tablo_Adı[SatırSayısı]))" formülünü girin "A", istediğiniz değeri içeren sütunun harfidir. geri vermek.
SUBTOTAL(105,...) işlevi, belirli bir aralıktaki tüm görünür satırların minimum değerini döndürür; bu, yukarıdaki durumda ilk görünür satırın satır numarasını döndürür.
DOLAYLI işlevi, belirli bir hücre adresi için hücrenin değerini döndürür. Bu nedenle, görüntülemek istediğiniz sütunun sütun harfini içeren formülün ilk bölümüne ihtiyacınız var. Formülün ikinci kısmı satır numarasını döndürür.
Bu yorum sitedeki moderatör tarafından en aza indirildi
Aşağıdaki VBA kodunda, lütfen ne yaptığını açıklayabilir misiniz? Özel Hücreler(xlCellTypeVisible)(1) kastetmek? Nedir (1) sonrası için kullanılır Özel Hücreler(xlCellTypeVisible)?
ActiveCell.Value2 = Aralık("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2