& nasıl sayılır Excel'de otomatik filtre ölçütlerinden değerler listesi alınır? Bir sütun "A" için bir filtre seçeneği uyguladıktan sonra onay kutusu ile kriterleri bulacaksınız, ben de kriterlerin sayısını & ölçütleri almak istiyorum. Bunu VBA koduyla nasıl yapabilirim? teşekkürler :)Excel'de süzgeç seçeneğinden bir ölçüt ve ölçüt sayısı alın
0
A
cevap
1
Sub MatchCount()
Dim Criteria(1 To n, 1 To 2) 'Define 2 dimensional array to store criteria and its count, change n as per your requirements
Dim i, j, k As Integer
For k = 1 To n
Criteria(k, 2) = 0
Next k
i = 1
Index = 1
Do While ActiveSheet.Cells(i, 1) <> 0
For j = 1 To n
If Criteria(j, 1) = ActiveSheet.Cells(i, 1) Then 'Counts the criteria
Criteria(j, 2) = Criteria(j, 2) + 1
Exit For
End If
Next j
If j = n+1 Then 'Stores the criteria If it is not found in the array and sets count to one
Criteria(Index, 1) = ActiveSheet.Cells(i, 1)
Criteria(Index, 2) = Criteria(Index, 2) + 1
Index = Index + 1
End If
i = i + 1
Loop
For i = 1 To n 'Print criteria and their respective counts
ActiveSheet.Cells(i, 3) = Criteria(i, 1)
ActiveSheet.Cells(i, 4) = Criteria(i, 2)
Next i
End Sub
1
bazı kod, bir bağlantı içeren ve bir 'havada ellerimi kusmak - hepsi anlamaya yaş almaya gidiyor' gibi bir yarı-cevap olarak bu ekliyorum .
Öncelikle beni durdurmak yapılan bağlantı (ı yok olarak zamanı): http://yoursumbuddy.com/autofilter-vba-operator-parameters/
Şimdi şimdiye kadar yazdım kodu. Buradaki fikir, tablonuzdaki her sütunun üstündeki hücreye =Filter_Criteria()
formülünü girmeniz ve bu sütun için seçilen ölçütleri listelemenizdir. Ben operatörler (eğer başlayanlar için rengine göre filtre listesi ediyorum nasıl) 2003 daha karmaşık bir fazlabirşey olduğunu fark edince ben
Public Function Filter_Criteria() As String
Dim rMe As Range
If TypeName(Application.Caller) = "Range" Then
'Where's the function being called from.
Set rMe = Application.Caller
'Is Autofilter on?
If rMe.Parent.AutoFilterMode Then
With rMe.Parent.AutoFilter
'Does the function sit a row above the filtered range?
If Not Intersect(rMe.Offset(1), .Range) Is Nothing Then
With .Filters(rMe.Column - .Range.Column + 1)
If .On Then
'Action depending on type of operator.
Select Case .Operator
'Specific values selected.
Case xlFilterValues
'Date Filter
Case 0
'Selected 'Last Month' in date range.
Case xlFilterDynamic
End Select
End If
End With
End If
End With
End If
End If
End Function
Umarım bu kod ve bağlantı, size iyi bir başlangıç noktası verecektir durdu. ... sonuna kadar ulaşırsan haber ver.
Bence bu ** iyi bir soru olabilir ......... lütfen gönderinizi almak istediğiniz bilgilerin ** özel ** bir örneği ile güncelleyin. –
Bana özgü sesler geliyor. Soruyu sorduğun için teşekkürler. – user4333011