Wątek przeniesiony 2022-08-22 08:51 z Inne języki programowania przez cerrato.

Usuwania tylko alfabetu łacińskiego VBA

0

Cześć, mam taki przypadek ze mam listę imion w różnych alfabetach i musze usunąć te które mają nie pelne imiona jak np. Imię ktora ma tylko jedna literę. Jak zrobie len o długości 1 to sa różne alfabety i ja musze usunąć tylko te które mają litery w naszym łacińskim alfabecie. Czy jest jakaś funkcja ktora wykrywa taki alfabet w VBA ?

0

Nie wiem czy jest gotowa funkcja, ale możesz sprawdzić np po kodach ASCII.

0

@Paweł Gerc:

Nie wiem, czy ja rozumiem - albo ty - istotę stawianego zagadnienia.
Np A należy do alfabetu (o ile takowa koncepcja w danych środowisku programowym w ogóle jest) łaciśniego, angielskiego, niemieckiego
"dawne" osmiobitowe strony kodowe implementowały grupy narodowościowe (wsch europa / nordyckie / cyrylica).
Bardzo orientacyjnie mogę sobie wyobrazić:
konwertujemy nowocześnsą literkę w unicode do 'starej' strony kodowej, i mamy wynik pozytywny lub negatyny - wiemy, czy przynależy do nordyckich / wsch europejskich / itd

Paweł Gerc napisał(a):

Jak zrobie len o długości 1 to sa różne alfabety i ja musze usunąć tylko te które mają litery w naszym łacińskim alfabecie.

Za nic nie rozumiem.

0

Mamy kolumnę z imionami, musze usunąć te które mają 1 znak i ten 1 znak to może być M ale może być 韩. Muszę napisać kod który wykryje jakie ma usunąć wiersze a ma usunąć tylko te których znaki to litery abecadła. Moge tez napisać na jana caly alfabet w kodzie od a do z.

3

Z tego co pamiętam, bo VBA średnio nadaje się do UNIKODU. I jego wszystkie funkcje oparte "o VBA" również.
Np.

ЗАПОРОЖЕ

funkcja

 =LEWY("ЗАПОРОЖЕ";1)

Zwraca poprawnie. Ale

=KOD(LEWY("ЗАПОРОЖЕ";1))

Już nie, bo zwraca 63 czyli ""?""

1
Paweł Gerc napisał(a):

Mamy kolumnę z imionami, musze usunąć te które mają 1 znak i ten 1 znak to może być M ale może być 韩. Muszę napisać kod który wykryje jakie ma usunąć wiersze a ma usunąć tylko te których znaki to litery abecadła. Moge tez napisać na jana caly alfabet w kodzie od a do z.

jeżeli dłudość(napis)==1 and napis[0] nalezy "abcdefghijklmnopqrstuvwxyz"

przerób sobie na VBA

Marcin.Miga napisał(a):

Z tego co pamiętam, bo VBA średnio nadaje się do UNIKODU. I jego wszystkie funkcje oparte "o VBA" również.

w drugim czytaniu wydaje się niekonieczne

0

Dzięki, ze tez sam na to nie wpadłem. Juz chciałem to zrobić w jeszcze inny sposób, bo mam kolumnę z nazwami krajów wiec moge zrobić tak żeby usuwała wszystkie te co mają 1 znak i nie są w krajach typu chiny, japonia, korea

0
Paweł Gerc napisał(a):

Dzięki, ze tez sam na to nie wpadłem. Juz chciałem to zrobić w jeszcze inny sposób, bo mam kolumnę z nazwami krajów wiec moge zrobić tak żeby usuwała wszystkie te co mają 1 znak i nie są w krajach typu chiny, japonia, korea

Jesli to ma formę relacyjnej bazy danych - i jest zdrowo zaprojektowane - to zupełnie wywraca zagadnienie. Ale "przyleciałeś"" do nas ze szczegółem, a nie ogólną architekturą.

0
ZrobieDobrze napisał(a):
Paweł Gerc napisał(a):

Dzięki, ze tez sam na to nie wpadłem. Juz chciałem to zrobić w jeszcze inny sposób, bo mam kolumnę z nazwami krajów wiec moge zrobić tak żeby usuwała wszystkie te co mają 1 znak i nie są w krajach typu chiny, japonia, korea

Jesli to ma formę relacyjnej bazy danych - i jest zdrowo zaprojektowane - to zupełnie wywraca zagadnienie. Ale "przyleciałeś"" do nas ze szczegółem, a nie ogólną architekturą.

I tak wykorzystam Twoją metodę, bo może zdarzyć się kontakt powiedzmy z Chin który będzie miał imię lub nazwisko w nie ich alfabecie, dlatego nie chciałem brać po krajach bo może to być niezbyt dokładne.

1 użytkowników online, w tym zalogowanych: 0, gości: 1