Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA Excel - wyszukiwanie - VBA Excel - wyszukiwanie po zadanej liczbie zna

Korek_123 13 Mar 2017 23:09 648 2
  • #1 13 Mar 2017 23:09
    Korek_123
    Poziom 11  

    Witam,
    Mam uprzejmą prośbę o pomoc.

    Potrzebuje napisać makro w MS Excel, które będzie zaznaczać „ustaloną” liczbę takich samych (następujący po sobie znaków, w komórkach arkusza MS Excel). Potrafię napisać makro które będzie wyszukiwać i wyróżniać (np. innym kolorem tłą) takie same ”stringi”. Działający przykład w załączeniu.

    Ale to nie wszystko – nie działa to prawidłowo i tak aby odpowiadało temu czego potrzebuję. Dla przykładu jak na końcu ciągu znaków jest spacja albo ostatnie trzy znaki w nazwie są inne - to już nie działa (nie wyszukuje) jak bym chciał.

    PODSTAWOWE PYTANIE jest następujące: jak wyszukiwać w zdefiniowanym zakresie „wszystkie” ciągi znaków, które maja co najmniej 3 (albo 5 ,7, 10 itp.) takich samych następujących po sobie znaków (bez rozróżnienia na „duże” i „małe” litery i z pominięciem np. „ . [kropka]” i „ , [przecinek]” i „ [spacja]”) – bardzo uprzejmie proszę o podpowiedź / pomoc ?

    DODATKOWE pytanie: - jak zdefiniować mechanizm zmiany kolorów tła (dla tych samych wyszukanych ciągów znaków) - tak aby to było _czytelne_ (jak zobaczycie załączony przykład - to zrozumiecie – „jakiś” mechanizm napisałem (dość prosty) – ale generlnie „wyróżnienie” nie jest niestety „czytelne” – prośba o podpowiedź również w tym zakresie).

    Przykład w załączeniu.

    Jeszcze raz bardzo proszę o pomoc / podpowiedź.

    Pozdrawiam.

    0 2
  • #2 14 Mar 2017 07:03
    JRV
    Specjalista - VBA, Excel

    Usun
    If Application.Evaluate("COUNTIF(" & zakres.Address & "," & kom.Address & ")") > 1 Then
    oraz End If

    zmien
    If W.Cells(5, j) = wart_szuk Then
    na
    If W.Cells(5, j) Like "*" & wart_szuk & "*" Then

    Dodano po 3 [minuty]:

    raczej
    If W.Cells(5, j) Like wart_szuk Then

    0
  • #3 14 Mar 2017 10:24
    Prot
    Poziom 30  

    Korek_123 napisał:
    PODSTAWOWE PYTANIE jest następujące: jak wyszukiwać w zdefiniowanym zakresie „wszystkie” ciągi znaków, które maja co najmniej 3 (albo 5 ,7, 10 itp.) takich samych następujących po sobie znaków (bez rozróżnienia na „duże” i „małe” litery i z pominięciem np. „ . [kropka]” i „ , [przecinek]” i „ [spacja]”) – bardzo uprzejmie proszę o podpowiedź / pomoc ?


    Powinieneś zainteresować się i wykorzystać tzw wyrażenia regularne. Pozwalają one bardzo precyzyjnie określać wzorzec wyszukiwanych stringów - z uwzględnieniem wielkości liter, znaków interpunkcyjnych itp.

    Ja do wyszukiwania RegEx wykorzystuje wspaniałą funkcję GetItem
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    którą wyszukałem gdzieś w sieci i stale wykorzystuje do importu wyciągów bankowych - przykład:
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod

    0