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

Dlaczego makro ukrywa tylko pierwszą kolumnę w arkuszu FTC.023? Analiza kodu.

Mike1313 07 Lis 2024 16:57 123 6
REKLAMA
  • #1 21293302
    Mike1313
    Poziom 6  
    Posty: 32
    Cześć,
    czy ma ktoś pomysł dlaczego dla poniższego kodu makro ukrywa tylko pierwszą kolumnę w arkuszu "FTC.023"?
    W komórce B4, C4, C4, E4 w arkuszu panel sterowania jest ustawiona wartość "TAK".
    Poniżej zamieszczam kod.

    Sub zamykanie_miesiąca()

    Sheets("Panel_Sterowania").Activate
    For s = 2 To 73

    If Cells(4, s) = "TAK" Then


    Sheets("FTC.023").Activate

    Columns(4 + s).Select
    Selection.EntireColumn.Hidden = True

    End If
    Next s
    End Sub
  • REKLAMA
  • #2 21293702
    Zbych034
    Poziom 39  
    Posty: 4680
    Pomógł: 549
    Ocena: 1414
    Przypadkiem oznaczenie wiersza i kolumny nie powinno być odwrotnie?
  • REKLAMA
  • #3 21293723
    Mike1313
    Poziom 6  
    Posty: 32
    Wiersz niezmiennie jest nr 4, tylko kolumny się zmieniają, więc chyba jest ok
  • REKLAMA
  • #4 21293739
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Błąd masz bo w środku pętli aktywujesz FTC.023, przez co następna iteracja "s" jest właśnie z tego arkusza. (czyli TAK sprawdza w arkuszu FTC.023)
  • #5 21293755
    Mike1313
    Poziom 6  
    Posty: 32
    Ok, już rozumiem.
    Mógłbym ewentualnie zrobić odwołanie w docelowym arkuszu na zasadzie komórka w arkuszu, gdzie kolumny mają się ukrywać = komórka z arkusza źródłowego.

    Macie może pomysł, jak to zapisać, żeby kod działał i żeby nie trzeba było robić tak ,,naokoło"?
  • REKLAMA
  • Pomocny post
    #6 21293790
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Mike1313 napisał:
    Macie może pomysł jak to zapisać żeby kod działał i żeby nie trzeba było robić tak ,,naokoło"?

    Kod: VBScript
    Zaloguj się, aby zobaczyć kod
  • #7 21293811
    Mike1313
    Poziom 6  
    Posty: 32
    Ponieważ zakładek było ok. 90, zrobiłem to na pieszo poprzez odwołanie komórek do arkusza docelowego. CLUBS, dziękuję za pomoc z pętlą :)

Podsumowanie tematu

✨ Użytkownik pyta, dlaczego makro w Excelu ukrywa tylko pierwszą kolumnę w arkuszu "FTC.023", mimo że w arkuszu "Panel_Sterowania" w komórkach B4, C4, D4, E4 ustawiono wartość "TAK". W odpowiedziach zauważono, że problem wynika z aktywacji arkusza "FTC.023" w pętli, co powoduje, że kolejne iteracje sprawdzają warunek w niewłaściwym arkuszu. Proponowane rozwiązanie polega na bezpośrednim odwołaniu do komórek w arkuszu "Panel_Sterowania" bez aktywacji innego arkusza. Użytkownik wdrożył poprawki i podziękował za pomoc.
Wygenerowane przez model językowy.
REKLAMA