;Nie działające makra office 2016 (filtrowanie tabeli wg daty) z poziomu VBA

Anonimowe
2020-09-21T10:22:29+00:00

Od połowy lipca zaobserwowałem problem z kodem VBA wykorzystującym makro filtrowania tabeli wg daty. Pojawia mi się błąd:

"Metoda Autofilter z klasy Range nie powiodła się" Próbowałem naprawić office 2016, wykorzystałem podpowiedzi z pomocy online. Mam wszystkie poprawki windows jak i office które zostały wydane przez Was do dnia dzisiejszego.

Makro nie działa. Oparłem na tym rozwiązaniu poważny fragment swojego programu i to musi działać.

Proszę o sugestie co mógłbym jeszcze zrobić lub jak naprawić błąd.

Dodam że do wspomnianej wyżej daty program działał bez zarzutu, nie miałem takiego monitu o błędzie.

Microsoft 365 i pakiet Office | Excel | Do użytku domowego | Windows

Pytanie zablokowane. To pytanie zostało zmigrowane ze społeczności pomocy technicznej firmy Microsoft. Możesz zagłosować, czy pytanie jest pomocne, ale nie możesz dodawać komentarzy ani odpowiedzi, ani też śledzić pytania.

Komentarze: 0 Brak komentarzy

Odpowiedzi: 17

Sortuj według: Najbardziej pomocne
  1. Anonimowe
    2020-09-21T13:12:45+00:00

    Private Sub CommandButton1_Click()

    Dim PlikDane As String

    Dim Kol, KolUtwardzacz, Mies, OstaniaKolNazwa, NowaKolNazwa As String

    Dim KolMas As Integer

    OstaniaKolNazwa = Arkusz4.Cells(2, 6).Text

    NowaKolNazwa = Arkusz4.Cells(3, 6).Text

    Kol = Arkusz3.Cells(54, 2).Text

    KolMas = Arkusz3.Cells(53, 2).Text

    KolUtwardzacz = Arkusz3.Cells(58, 2).Text

    Miesiac = Arkusz3.Cells(54, 1).Text

    PlikDane = "RozliczenieProdukcja.xlsm"

    Call Otwarty("RozliczenieProdukcja.xlsm")

    If Otwarty("RozliczenieProdukcja.xlsm") = True Then

                            Rows("2:2").Select

                               Selection.Find(What:="Utwardzacz", After:=ActiveCell, LookIn:=xlFormulas _

                                   , LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _

                                   MatchCase:=False, SearchFormat:=False).Activate

                If Selection.Find(What:="Utwardzacz") = "Utwardzacz" Then

                               Columns(Kol).Select

                    If OstaniaKolNazwa <> NowaKolNazwa Then

                                        Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove

                                        Range(Miesiac).Select

                                        Selection.Locked = False

                                        Range(Miesiac).Select

                                        Range(Miesiac).Activate

                                        ActiveCell.FormulaR1C1 = NowaKolNazwa

                                        Arkusz4.Cells(2, 6) = ActiveCell.FormulaR1C1

                                        Arkusz3.Cells(3, Kol) = "Średnia cena"

                                        'wpisywanie średnich do komorek

                                   Windows("RozliczenieProdukcja.xlsm").Activate

                               Sheets("Produkcja").Activate

                               Sheets("Produkcja").Select

                               ActiveSheet.Range("$A$11:$JZ$8011").AutoFilter Field:=2, Operator:= _

                                   xlFilterValues, Criteria2:=Array(1, Arkusz4.Cells(3, 7).Text)    - W tej komórce jest wpisany w odpowiedni sposób okres jaki być wykorzystany do filtra.

                               ActiveSheet.Range("$A$11:$JZ$8011").AutoFilter Field:=3, Criteria1:= _

                                   "Farba biała A 300"

                               Workbooks("RozliczenieProdukcja.xlsm").Sheets("Produkcja").Activate

                               ActiveSheet.Cells(7, 6).Select

                               ActiveSheet.Cells(7, 6).Copy

                               Workbooks("SrednieCeny2020.xlsm").Sheets("SrednieWartosci").Activate

                               Arkusz3.Cells(4, Kol).Select

                               Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

                                   :=False, Transpose:=False

    Nie jest to cały kod ale jedna część która wykonuje się kilka razy.

    Wszystko działało do pewnego momentu, taki sposób filtrowania wykorzystuję też w innych swoich plikach i tam mam identyczny problem.

    Dla podpowiedzi dodam, że w konfikracji Windows 7 vs Office 2016 działa ten kod bez problemu.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  2. Oskar Shon 49,336 Punkty reputacji Moderator wolontariuszy
    2020-09-21T13:06:27+00:00

    "Metoda Autofilter z klasy Range nie powiodła się"

    Obszar danych musiał ci się zmienić albo filter zmienił swoje położenie i odwołanie do konkretnego pola/nagłówka nie istnieje.

    Najlepiej przećwicz to na mniejszych danych, porównaj plik stary i nowy a jak będziesz miał problem to podlinkuj plik ze sfabrykowanymi danymi i kodem, taki który oddaje sens twojego problemu.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  3. Anonimowe
    2020-09-21T12:55:19+00:00

    Cześć Jacek,

    Dzięki za aktualizację.

    Czy mógłby pan podzielić się z nami całym kodem, aby lepiej zbadać problem? Byłbym bardzo wdzięczny. Z góry dzięki.

    Pozdrawiam

    Jen :)

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  4. Anonimowe
    2020-09-21T11:01:15+00:00

    Nie do końca to jest mój problem choć bardzo podobny, ja wykorzystuję taki kod:

    ActiveSheet.Range("$B$3:$D$37").AutoFilter Field:=2, Operator:= _

            xlFilterValues, Criteria2:=Array(1, "2/29/2020")

    Tam problemem jest class i błąd 1004 a ja mam błąd jak wyżej i pojawił się po jednej z waszych poprawek.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  5. Anonimowe
    2020-09-21T10:44:16+00:00

    Korzystamy z usług tłumaczeniowych, by wesprzeć naszych użytkowników. Przepraszamy za wszelkie błędy gramatyczne.

    Witam Jacek! Jestem Jen, niezależny doradca i kolega użytkownik Microsoft jak ty. Chętnie pomogę ci w tym problemie.

    Proszę spojrzeć na link do forum poniżej, który omówił związane z problemem i spróbuj sugestie wymienione tutaj, w jaki sposób poprawić błąd autofiltru. Mam nadzieję, że to pomoże Ci rozwiązać problem.

    https://stackoverflow.com/questions/45190903/ru...

    Uwaga: Jest to witryna sieci Web firmy innych niż Microsoft. Strona wydaje się dostarczać dokładnych i bezpiecznych informacji. Uważaj na reklamy w witrynie, które mogą reklamować produkty często klasyfikowane jako PUP (Potencjalnie niechciane produkty). Dokładnie zbadaj dowolny produkt reklamowany na stronie, zanim zdecydujesz się go pobrać i zainstalować.

    Mam nadzieję, że ta informacja pomaga.

    Jeśli masz jakieś pytania, daj mi znać i byłbym zadowolony, aby pomóc ci dalej.

    Dziękuję i pozdrawiam!

    Jen :)

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy