VBA विकसित करके Excel में कक्षों की श्रेणी में a-z वर्णों की गणना कैसे करें। उदाहरण के लिए मेरे पास श्रेणी में नामों की एक सूची है (ए 1: ए 10) और मुझे सभी श्रेणियों में ए, बी, सी, ...., और जेड गिनने की ज़रूरत है?
मैंने लूप के साथ Chr (64 + i) और InStr पर प्रयास किया है, लेकिन मुझे केवल किस वर्ण का उपयोग किया गया है और उपयोग नहीं किया गया है, अक्षर की कुल संख्या नहीं।
- मुझे प्रत्येक चरित्र की घटनाओं की संख्या खोजने की जरूरत है, उदाहरण के लिए ए = 20, बी = 12 और इस प्रकार।
- परिणाम श्रेणी कोई फर्क नहीं पड़ता, हम इसे श्रेणी B1:C26 . में रख सकते हैं
-3
Elia
15 फरवरी 2019, 05:17
1 उत्तर
सबसे बढ़िया उत्तर
श्रेणी वर्ण गणना
कोड
Sub RangeCharactersCount()
Const cSheet As String = "Sheet1" ' Source Worksheet Name
Const cSrc As String = "A1:A10" ' Source Column Range
Const cTgt As String = "B1" ' Target First Cell Range
Const c1 As Long = 65 ' First Character Code ("A")
Const c2 As Long = 90 ' Last Character Code ("Z")
Dim vntS As Variant ' Source Array
Dim vntT As Variant ' Target Array
Dim i As Long ' Source Array Element Counter, Character Counter
Dim strB As String ' Concat String
Dim LenT As Long ' Current Length
' Copy Source Column Range to Source Array.
vntS = ThisWorkbook.Worksheets(cSheet).Range(cSrc)
' Loop through elements of Source Array.
For i = 1 To UBound(vntS)
' Concatenate Concat String and current element of Source Array.
strB = strB & vntS(i, 1)
Next
' Resize Target Array to number of characters rows and 2 columns.
ReDim vntT(1 To c2 - c1 + 1, 1 To 2)
' Loop through Characters.
For i = c1 To c2
' Write length of Concat String to Current Length.
LenT = Len(strB)
' Replace all occurrences of current letter with empty string ("").
strB = Replace(strB, Chr(i), "", , , vbTextCompare)
' Write current letter to 1st column of Target Array.
vntT(i - c1 + 1, 1) = Chr(i)
' Write number of occurrences (the difference between Current Length
' and the length of Concat String) of current letter to 2nd column of
' Target Array.
vntT(i - c1 + 1, 2) = LenT - Len(strB)
Next
With ThisWorkbook.Worksheets(cSheet).Range(cTgt)
' Clear contents of Target Range (from Target First Cell Range to
' last cell of 2nd column).
.Resize(.Parent.Rows.Count - .Row + 1, 2).ClearContents
' Copy Target Array to Target Range.
.Resize(UBound(vntT), UBound(vntT, 2)) = vntT
End With
End Sub
-3
VBasic2008
15 फरवरी 2019, 07:00
संबंधित सवाल
नए सवाल
excel
केवल एक्सेल ऑब्जेक्ट्स या फ़ाइलों, या जटिल फॉर्मूला विकास के खिलाफ प्रोग्रामिंग पर प्रश्नों के लिए। यदि आप लागू हो तो आप Excel टैग को VBA, VSTO, C #, VB.NET, PowerShell, OLE स्वचालन और अन्य प्रोग्रामिंग संबंधी टैग और प्रश्नों के साथ जोड़ सकते हैं। सुपर उपयोगकर्ता पर एकल कार्यपत्रक कार्यों के लिए एमएस एक्सेल के बारे में सामान्य सहायता उपलब्ध है।