Geniş bir sayfam var. Bu sayfada birden fazla filtre ayarlamalıyım. Filtreler belirlendikten sonra, "Nov" sütun başlığına sahip olan ve bu sütundaki değerlerin toplamını elde eden ve bu belirli toplam değeri farklı bir çalışma sayfasına içe aktaran belirli bir sütunu bulmak zorundayım. Filtreleri, çok sayıda sütuna filtreleyebileceğim yere kadar yazdım, ancak sütun başlığını bulup bu sütunu eklemeyi zor buluyorum. Şimdiye kadar yazdığım kod aşağıdadır.VBA - Belirli bir üstbilgiye sahip bir sütun bulun ve bu sütundaki tüm satırların toplamını bul
Sub Button2_Click()
Dim colName As Long
Dim colName1 As Long
Dim colName2 As Long
Dim r As Long
SearchV = Range("A8:DD8").Find(What:="Nov", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
lastrow = Cells(Rows.Count, SearchV).End(xlUp).Row
colName = Range("A8:DD8").Find(What:="Teams", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
colName1 = Range("A8:DD8").Find(What:="Items", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
colName2 = Range("A8:DD8").Find(What:="Domain", LookIn:=xlValues, LookAt:=xlWhole, _
MatchCase:=False, SearchFormat:=False).Column
ActiveSheet.Range("$A$8:$DD$9999").AutoFilter Field:=colName, Criteria1:="ST Test", Operator:=xlOr, Criteria2:=""
ActiveSheet.Range("$A$8:$DD$9999").AutoFilter Field:=colName1, Criteria1:="Variance", Operator:=xlOr, Criteria2:="(Blanks)"
ActiveSheet.Range("$A$8:$DD$9999").AutoFilter Field:=colName2, Criteria1:="9S", Operator:=xlOr, Criteria2:="(Blanks)"
Sütun başlıkları her zaman 8. satıra başlar. Yukarıdaki satırlarda bazı utangaç bilgiler mevcut. Yani istediğim, 'Nov' sütununun H satırında olduğunu varsayalım. Toplam, H9'dan son satırın sonuna kadar hesaplanmalıdır. Sütun 'H' sütununda olduğunda bu formülü kullandım.
Cells(lastrow + 1, colName3).Formula = "=SUBTOTAL(9,H9:H" & lastrow & ")"
Ama sütun 'Kasım' daima 'H' satırında mevcut olmayacaktır, bu yüzden dinamik sütun almaya kodumu nasıl değiştirileceğini anlamaya muktedir değilim.
Çok teşekkürler denemek gibi çalışma göründüğünü varsayalım Dünya. Çalışmamın çoğunu bununla çekmeyi başardım. Ancak asıl sorun, satırların toplamını eklemektir. Şu anda bu kodu kullanıyorum. 'SumV = SV ve "9" ' ' SumW = SV ve lRow' 'Hücreler (lRow + 1, SV) .Formula = "= SUBTOTAL (9, SumV: SumW)"' Ancak bu, aşağıdaki değeri Excel'de döndürüyor "= SUBTOTAL (9, SumV: SumW)" Ve #NAME alıyorum? hata. –
Umm, SV nedir? –
Üzgünüm Açık olmadım. Kodunuzda colName olarak belirttiğiniz her şeyden önce, onu başka bir yerde colName değişkenini kullandığım için SV olarak değiştirdim. Temel olarak, yapmaya çalıştığım şey, belirli bir değer elde etmek için sütunu ve satırı birleştirmektir (Örn. W9). Bu yüzden SumW için W9 ve SumW için W2128 değerini aldım. Ancak, Subtotal işlevini kullandığımda, aynı gerçek değer yerine eklenir. Onları da böyle kullanmayı denedim. '= SUBTOTAL (9," & SumV & ":" & SumW & ")'. Ama bu bile bir istisna atıyor. –