Przypisanie formuły do obiektu nie jest możliwe - formuła jest zbyt skomplikowana

Anonimowe
2024-07-08T09:49:37+00:00

Stworzyłem ( z pomocą chatu GPT) makro do ukrywania wierszy, które są puste. Makro znajduje ostatni wypełniony wiersz i ukrywa wszystkie poniżej niego. Makro działa przy wywołaniu przez alt+F8 lub przez uruchomienie w VBA, ale nie mam możliwości przypisać je do przycisku. Wyskakuje błąd z tytułu: "Przypisanie formuły do obiektu nie jest możliwe - formuła jest zbyt skomplikowana". Czym może być spowodowany brak możliwości przypisania do przycisku? Jak wcześniej pisałem, makro działa tak jak oczekiwano przy jego uruchomieniu.

Poniżej makro:

Sub ROBOCZE_SKRACANIE_PO()

Dim ws As Worksheet 

Dim lastRow As Long 

Dim i As Long 

Dim hasNumber As Boolean 

' Ustaw arkusz 

Set ws = ThisWorkbook.Sheets("Robocze") 

' Znajdź ostatni wiersz w arkuszu 

lastRow = 267 

' Iteruj przez zakres F12:F267 

For i = 12 To lastRow 

    If Not IsNumeric(ws.Cells(i, 6).Value) Or ws.Cells(i, 6).Value = "" Then 

        ws.Rows(i).Hidden = True 

    Else 

        ws.Rows(i).Hidden = False 

        hasNumber = True 

    End If 

Next i 

' Ukryj wszystkie wiersze od 271 do 421, jeśli w żadnej komórce F12:F267 nie ma liczby 

If Not hasNumber Then 

    ws.Rows("271:421").Hidden = True 

Else 

    ws.Rows("271:421").Hidden = False 

End If 

End Sub

Microsoft 365 i pakiet Office | Excel | Do użytku biznesowego | 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: 4

Sortuj według: Najbardziej pomocne
  1. Oskar Shon 49,331 Punkty reputacji Moderator wolontariuszy
    2024-07-22T09:16:01+00:00

    No niestety chatGPT nie powie ci dlaczego jest błąd, a to pewnie dlatego że bazuje na wypowiedziach innych kodów ludzi który opisali to zagadnienie i nie bierze pod uwagę warunków zapisanych w twoim pliku.

    Sam też uruchomiłem "twój" kod wpisując jakieś brednie teoretycznie spełniające warunek kodu i zadziałał prawidłowo. Więc potwierdzam - kod jest ok

    Komunikat: "Przypisanie formuły do obiektu nie jest możliwe - formuła jest zbyt skomplikowana" to bardzo rzadki przypadek i nijak nie mogę go powiązać z samym uruchomieniem kodu, stąd moja wcześniejsza propozycja uruchamiania do pod grafiką lub z pozycji innej procedury.

    U mnie również kod działa po podłączeniu do grafiki.

    Zatem na bazie przekazanych informacji nie wiem co może być powodem tego komunikatu, ale z pewnością dane w twoim pliku. Może komórki scalone, może blokada zakresów....

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  2. Anonimowe
    2024-07-22T07:37:43+00:00

    ----nie cytuj pow posta w całości, ale fragment do którego się odnosisz.....

    ----skasowane

    Plik jest zapisany w formacie xlsm, nie mam żadnych blokad

    Stworzyłem makro w Module jeden odwołujące się do tego stworzonego przeze mnie

    sub nazwa_twojego_makro()
    
    call ROBOCZE_SKRACANIE_PO
    
    end sub
    

    Nie pomaga stowrzenie kształtu i próba przypisania do niego makra - wyskakuje ten sam błąd o skomplikowaniu formuły. Nie pomogło stworzenie makra odwołującego się do mojego.

    Jeśli to w jakikolwiek sposób pomoże, mogę gdzieś przesłać plik w celu sprawdzenia bo już nic nie pomaga.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  3. Oskar Shon 49,331 Punkty reputacji Moderator wolontariuszy
    2024-07-21T11:44:48+00:00

    I jak się sprawy mają?

    Czy wskazówka była przydatna i pozbyłeś się problemu?

    Jeśli tak to zaznacz pst jako prawidłowy aby w przyszłości liczyć na moją pomoc na tym forum

    Jak nie to napisz co zrobiono i abym nie traktował odpowiedź na twój post jako czas stracony.

    Pozdrawiam.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  4. Oskar Shon 49,331 Punkty reputacji Moderator wolontariuszy
    2024-07-08T10:05:38+00:00

    Nie wiedze powodu aby nie przypisać tego kodu do przycisku, ale skoro tak to zrób sobie inne makro jakie powoła się na to jakie opisujesz i zapisz obydwa w module danego pliku. Potem przywiąż je przycisku:

    sub nazwa_twojego_makro()
    
    call ROBOCZE_SKRACANIE_PO
    
    end sub
    

    Zobaczysz czy masz problem z przypięciem procedury do jakiegokolwiek przycisku z karty Developer czy dowolnej grafiki (bo kod można przypiąć również do kształtki). Czy jakiś inny błąd, o którym nam nie mówisz, np że plik ten nie jest zapisany jako xlsm (z obsługą makr) albo że masz jakies blokady arkuszu/skoroszytu.

    Pozdrawiam.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy