logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Excel VBA: Jak usuwać wiersze na podstawie listy wartości z innego arkusza?

m4xon 02 Lut 2016 17:24 2352 13
REKLAMA
  • #1 15396678
    m4xon
    Poziom 15  
    Posty: 707
    Ocena: 74
    Cześć,

    Potrzebują pomocy z następującą sytuacją. Mianowicie mam raport w Excelu, z którego usuwam codziennie niepotrzebne dane. Używam do tego następującego kodu, który duplikuje tyle razy ile potrzebuję różnych rzeczy do usunięcia:

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    Chciałbym to jakoś usprawnić na zasadzie, że w Arkuszu2 miałbym wpisane w kolumnie wiersz po wierszu Wartości (ABC, BVZ, ...), z których korzystałby kod przy obrabianiu raporu z Arkuszu 1?
    Będę wdzięczny za porady.
  • REKLAMA
  • Pomocny post
    #2 15396953
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Dołóż jeszcze jedną pętlę
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #3 15399329
    m4xon
    Poziom 15  
    Posty: 707
    Ocena: 74
    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    a jak to "wyraz = .Cells(j, "A")" odnieść do Arkusz2, bo w tym momencie wyszukuje mi w jednym arkuszu.
  • REKLAMA
  • #4 15399439
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    JRV napisał:
    With Arkusz2


    Dodano po 2 [minuty]:

    Sheets(2), lub Sheets("Arkusz2") - jak jego nazwa Arkusz2

    Dodano po 1 [minuty]:

    With Arkusz2 - tylko jesli Excel PL i kodowa nazwa jest Arkusz2

    Dodano po 5 [minuty]:

    Odwolanie do arkusza mogą być 3 sposoby:
    Sheets(2) - drugy od lewa
    Sheets("Arkusz2") - nazwa wkladki
    Arkusz2 - widoczne tylko w edytorze VBA(przed nawias, nie wewnątrz nich )
  • #5 15415522
    m4xon
    Poziom 15  
    Posty: 707
    Ocena: 74
    Dzięki za wyjaśnienie JRV, robiłem podobny błąd w innych przypadkach.

    Mam prośbę, mógłbyś zaproponować rozwiązanie dla poniższej sytuacji. Mianowicie mam w jednym arkuszu dużą liczbę nazw, które będę chciał później pogrupować, w tym celu chciałbym aby makro zmieniało nazwy na podstawie bazy w drugim arkuszu (załączyłem przykład o co mi chodzi), próbowałem w jakiś sposób zmodyfikować Twoją propozycję z wyżej, ale nie idzie mi ze zmianą nazwy.

    Z góry wielkie dzięki!
    Załączniki:
    • zmien nazwe.xls (35 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #6 15415563
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Zmiana ma byc w 'Tabele' ?

    Dodano po 2 [minuty]:

    w 'Tabele' bedzie tylko nazwa waluty?
  • REKLAMA
  • #7 15415580
    m4xon
    Poziom 15  
    Posty: 707
    Ocena: 74
    tak dokładnie, w Tabele ma zmieniac nazwe na dobra nazwe z Baza
  • #8 15415606
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Był leniwy, aby przeczytać pomoc o Like? :D
    Załączniki:
    • zmien nazwe.xls (44 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #9 15415608
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #10 15415624
    m4xon
    Poziom 15  
    Posty: 707
    Ocena: 74
    Tylko te nazwy są dość różne, te które podałem są przykładowe i chciałbym, aby zmieniały się 1:1 - żeby można było dopisywać. Czyli jak znajdzie Euro 1 to niech zmieni na EUR, a jak później dopisze, że jak znajdzie XYZ zmiena na EUR to też zmieni, z zastosowaniem np:

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    wcześniej używałem wariantu z replace

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod


    tylko jest to mało wydaje i za każdym razem jak pojawia mi się coś nowego to muszę w kodzie grzebać
  • Pomocny post
    #11 15415653
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    wtedy zwykle wyszukaj.pionowo
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #12 15416159
    m4xon
    Poziom 15  
    Posty: 707
    Ocena: 74
    super, dziala perfekcyjnie! dziekuje!
  • Pomocny post
    #13 15416675
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Tu masz ciastko
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • #14 16393257
    m4xon
    Poziom 15  
    Posty: 707
    Ocena: 74
    Dzięki za pomoc

Podsumowanie tematu

LABEL_AI_GENERATED
Użytkownik poszukiwał pomocy w usuwaniu wierszy w Excelu na podstawie wartości z innego arkusza. Przedstawiony kod VBA usuwał wiersze, które zawierały określoną wartość w kolumnie F. Użytkownicy zaproponowali modyfikację kodu, aby dodać pętlę, która porównywałaby wartości z Arkusza2, gdzie znajdowały się różne wartości do usunięcia. W odpowiedziach omówiono również różne metody odwoływania się do arkuszy oraz zaproponowano użycie funkcji VLOOKUP do zmiany nazw na podstawie bazy danych. Użytkownik ostatecznie potwierdził, że zaproponowane rozwiązania działają poprawnie.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA