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

VBA Excel - Kopiowanie całych arkuszy ale bez formuł

28 Lut 2014 22:48 3234 6
  • Poziom 10  
    Witam,

    mam napisane makro na kopiowanie całych arkuszy z jednego pliku do nowego.
    Wszystko mi działa i funkcjonuje poza jednym. W pewnym momencie wyskakuje mi informacja, że zasoby fizyczne do obliczeń są za małe i wyskakuje błąd. Spowodowane to jest tym, że z pliku głównego, gdzie są kopiowane arkusze do nowego pliku podczas mojej procedury początkowo przenoszą się wszystkie formuły i dane z Menadżera nazw. Z mojej strony pytanie czy ten kod poniżej można zamienić w taki sposób, aby zawsze kopiowane były jedynie same wartości, które będą w tej samej formie co w pliku głównym lecz bez formuł itp???




    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Moderator Programowanie
    Pomijając strukturę kodu (dlaczego nie użyjesz pętli?), czyść schowek Excela (CutCopyMode=False) po każdym Paste.

    Jeśli to nie zadziała, odwróć proces. Najpierw copy-paste special w arkuszach źródłowych (z czyszczeniem schowka po każdym Paste), następnie kopiowanie i na koniec zamknięcie pliku źródłowego bez zapisywania.
  • Poziom 10  
    Fajne pomysły podpowiadasz. Czyszczenie pomogło.

    Robiłem to wszystko szukając danych na forach itp oraz kombinując za pomocą nagrywania makr.

    Jednak zjawisko pętli mimo próbowania nie raz przy moim braku wiedzy jest jeszcze dla mnie za trudne. Staram się sam wiele spraw znaleźć i rozszyfrować poprzez szukanie, jednak bez osoby która się na tym zna jest ciężko.


    Jak taka pętla miała by wyglądać? Odwrócenie procesu nie będzie możliwe ze względu że plik będzie ważył około 100 mb, ma strasznie dużo mega formuł ( co zapewne wpływa na pracę pliku ) i długo się otwiera i zamyka ( automatyczne przeliczanie jest wyłączone )
  • Moderator Programowanie
    kwitu86 napisał:
    Jak taka pętla miała by wyglądać?
    Ano masz Array. Podstaw do zmiennej i... jazda. Wypróbuj takie coś
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 10  
    Ciekawa opcja i na pewno bym na to nie wpadł.

    jednak nie działa mi już przy opcji
    Kod: vb
    Zaloguj się, aby zobaczyć kod
    - wyskakuje błąd. Więc idąc tym tropem dalsza cześć najprawdopodobniej też będzie miała kłopot z ruszeniem

    Podałem 3 zakresy - ale te zakresy są do usunięcia w nowym pliku więc podejrzewam że muszę je zamienić na te poprawne jakie chce skopiować ?
  • Poziom 10  
    Więc udało mi się posiedzieć nad tym i zdziałało. Jednak całość skopiowała się z formułami co spowodowało zwiększenie wagi pliku.

    Czy znajdzie się jakaś sugestia aby to ograniczyć ? wyeliminować formuły ?
  • Poziom 10  
    czołem,

    sprawę rozwiązałem zupełnie inaczej. Skorzystałem z makra które kopiuje wszystkie wartości do innego arkusza ( same czyste dane ) a później z nich za pomocą tego co napisałem wcześniej. Plik zmnieszył swoją wagę i działa całość o wiele szybciej :)