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

VBA Kopiowanie danych bez otwierania pliku. ExecuteExcel4Macro/ADO

blacknigga 13 Lut 2017 10:10 4428 6
REKLAMA
  • #1 16274910
    blacknigga
    Poziom 13  
    Posty: 197
    Ocena: 30
    Witam,

    Mam makro, które zaciąga dane z 30 różnych exceli z jednej konkretnej zakładki. Chce to zrobić bez otwierania każdego pliku na dysku sieciowym, co sporo czasu zajmuje. Znalazłem w sieci przykładowe makra na podstawie ExecuteExcel4Macro oraz ADO, ale mam problem, gdyż pliki, które chce otworzyć są zahasłowane (niewiem gdzie w kodzie dać hasło) albo ExecuteExcel4Macro nie chce mi zadziałać - error: run-time error 1004
    Kod: text
    Zaloguj się, aby zobaczyć kod

    Drugi kod wzięty z Rod de Bruin działa gdy plik nie ma hasła.
    Kod: text
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • Pomocny post
    #2 16275629
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Ten pierwszy kod jednorazowo może odczytać 1 komórkę. Tu była próba odczytania całego zakresu od razu. Trzeba to zrobić w pętli.
  • REKLAMA
  • #3 16275761
    blacknigga
    Poziom 13  
    Posty: 197
    Ocena: 30
    Teraz i w tym prosi mnie o hasło, gdzie mogę wpisać w kod hasło?
    Pętle sobie zrobiłem, jednak nie do końca jestem przekonany czy jest to szybsze od otwarcia pliku i skopiowania obszaru (12kolumn x 15-30 wierszy)
  • #4 16275797
    Maciej Gonet
    Specjalista - VBA, Excel
    Posty: 2207
    Pomógł: 824
    Ocena: 481
    Generalnie, to nie jest metoda na pobieranie dużej ilości danych. Działa powoli, ja raczej skłaniałbym się do otwierania i zamykania pliku, a może wystarczą zwykłe odwołania? Nie wiem, co się zmienia w lokalizacji tych odczytywanych danych. Co do hasła, nie widzę możliwości podania hasła bez otwierania pliku, ale nie bardzo wiem też, jakie to hasło, czego ono dotyczy. Zwykle arkusz zabezpiecza się hasłem przed modyfikacją i wtedy jest "tylko do odczytu", ale do odczytu hasła nie trzeba. Jeśli plik jest tak zabezpieczony, że nawet odczytać się go nie da bez hasła, to obawiam się, że ta metoda jest nieprzydatna. Ale mogę się mylić, nie jestem w tym względzie guru.
  • REKLAMA
  • #5 16276119
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Witam
    Tak jak kolega wyżej piszę czego dotyczy te hasło?
  • REKLAMA
  • #6 16282356
    blacknigga
    Poziom 13  
    Posty: 197
    Ocena: 30
    Hasło do otwarcia pliku, bez niego nie otworzy sie pliku. Mam obecnie około 30 plików do otwarcia z dysku sieciowego, z każdego pliku muszę skopiować dane z konkretnej zakładki

    Nie jest sporo danych, najwięcej czasu właśnie mi zajmuje otwarcie pliku, stąd chce przyśpieszyć ten proces. Są to dane dynamiczne, więc wydaje mi się, że ciężko by było odwołaniami ściągnąć dane z 30 plików by nie było przerw między nimi (ściągam dane do jednej zakładki)
  • #7 16283656
    clubs
    Poziom 38  
    Posty: 2219
    Pomógł: 629
    Ocena: 406
    Podaj ten kod który aktualnie używasz

Podsumowanie tematu

✨ Użytkownik poszukuje sposobu na kopiowanie danych z 30 zabezpieczonych plików Excel bez ich otwierania, aby zaoszczędzić czas. Wskazano na problemy z używaniem ExecuteExcel4Macro oraz ADO, szczególnie w kontekście plików z hasłem. Odpowiedzi sugerują, że ExecuteExcel4Macro może nie być odpowiednie do odczytu dużych zakresów danych, a otwieranie plików może być bardziej efektywne. Użytkownik potwierdza, że hasło dotyczy otwarcia pliku, co uniemożliwia dostęp do danych bez jego podania. Wskazano również na potrzebę optymalizacji procesu kopiowania danych z wielu plików.
Wygenerowane przez model językowy.
REKLAMA