Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 8
  • 121

Chciałbym zapytać, jak sprawdzić za pomocą funkcji czy wybrany wyraz to CamelCase?

Taka funkcja byłaby przydatna np. do automatycznego tworzenia słów kluczowych i linków.

Jak stworzyć funkcję, która na wejściu przyjmuje łańcuch tekstowy, a na wyjściu - boolean True/False - tj.

SzpitalBródnowski, KasiaKowalska, WólkaKosowska. FranklinDelanoRoosevelt... HBomb etc.?

W sieci dużo jest funkcji, które zamieniają CamelCase na inny format, np. Proper Case. Zwykłe zdanie, ale niestety nie rozpoznają one, czy string jest CamelCase'em.

Najbliższe sugerują użycie RegEx, np.

http://stackoverflow.com/questions/1128305/regular-expression-to-identify-camelcased-words

http://www.mrexcel.com/forum/excel-questions/600974-proper-case-camel-case.html 

 

Jacek_Kotowski
  • Zapytał
  • @ Jacek_Kotowski | 13.03.2015
    • lider
    • laureat
    • ekspert
    • 60
    • 54
    • 94

Odpowiedź (1)

  • 15

Witam Panie Jacku.

Poniżej funkcja napisana w VBA, która sprawdza, czy dany string to camelCase:

Function CzyCamelCase(tekst As String) As Boolean
Dim i As Long

If Left(tekst, 1) = LCase(Left(tekst, 1)) Then
    
    For i = 1 To Len(tekst)
        If Mid(tekst, i + 1, 1) = UCase(Mid(tekst, i + 1, 1)) And Mid(tekst, i + 1, 1) <> "" Then
            CzyCamelCase = True
            Exit Function
        Else
            CzyCamelCase = False
        End If
    Next

Else
    CzyCamelCase = False
End If

End Function

Najpierw sprawdzamy, czy pierwsza litera jest mała, następnie każdą kolejną sprawdzamy, czy jest wielka, jeżeli tak - to funkcja zwraca TRUE.

W załączniku cały plik w funkcją.

Pozdrawiam.
Paweł Niemyt.

 

Załączniki

  • xlsm

    camelCase.xlsm ( 14K )
pawel_niemyt
  • Odpowiedział
  • @ pawel_niemyt | 16.03.2015