Saber cuantas veces aparece una letra

Pedro
24 de Abril del 2004
Necesito saber cuantas veces aparece una letra en una cadena , como puedo hacer para saberlo?
Por ejemplo:
Cadena = "Hola Mundo"
Letra O aparece 2 veces


^Neo^
24 de Abril del 2004
InStr([inicio, ]cadena1, cadena2[, comparación])

te devuelve el número de veces que aparece la letra. En cadena1 metes la cadena en la que quieres buscar, por ejemplo "Hola Mundo" o text1.text. En cadena2 metes la subcadena a buscar (uno o más caracteres). Por ejemplo "o", "do", "Ho". Inicio lo usas sólo si quieres indicar en que posición de la cadena comenzar a buscar. comparación puede ser binaria (0) o de texto (1). Espero que esto te haya ayudado. Suerte.

Jos?
24 de Abril del 2004
No no, lo que te devuelve es la primera posisión de cadena2 dentro de la cadena1. qué confusión! Puedes usarlo introdusiendo la posisión en que la encontró cada vez como posisión de inissio, y así hasta que no la encuentre más veses (instr devuelve 0), tonses con esee bucle sabes las veses que la encontró :P Pero la verdá es que debe haber una funsión para eso ¿no? Aunque yo he mirado en el examinador de objetos y no la he encontrado. adiooooosssssss

en?
24 de Abril del 2004
no sé si hay alguna función propia (creo que no), pero puedes probar con un For o bién con Split:

Dim Cont As Long
Dim nVeces As Long

For Cont = 1 to Len(Cadena)
If Mid(Cadena, Cont, 1) = Letra Then nVeces=nVeces+1
Next
MsgBox "La letra " & Letra & " ha salido " & nVeces & " veces"


Con Split sería:

Dim Corte() As String

Corte=Split(Cadena, Letra)
MsgBox "La letra " & Letra & " ha salido " & UBound(Corte) & " veces"



Saludos.