Łączenie arkusza Excell z plikiem Word - Office 2013

Anonimowe
2014-01-07T10:03:35+00:00

Witam,

Tworzę plik w Wordzie (szablon ofertowy), który następnie przygotowuję do dynamicznego wypełnienia danymi z Excela. Mam zatem dwa pliki: A.docx oraz A.xlsx, znajdujące się w tej samej lokalizacji.

Następnie przy pomocy łącz umieszczanych w polach dynamicznych linkuję adresy komórek z Excela w Wordzie. Wszystko ładnie działa dopóki pliki znajdują się lokalnie na komputerze. Sprawa komplikuje się, gdy pracuję na dysku sieciowym. Podczas aktualizacji pól [CTRL+A -> F9] Word oddziałuje na arkusz Excel całkowicie niestabilnie - nie jestem w stanie nawet określić jak i kiedy.

Przypadki:

  • [problem: WORD] bardzo czasochłonny proces zaktualizuje pola (w przypadku, gdy pliki są na lokalnej maszynie, proces nie jest czasochłonny)
  • [problem: EXCEL] wyłączenie arkusza Excel i  wyrzucenie komunikatu: 'A.xlsx jest już otwarty. Ponowne otwarcie spowoduje utratę nie zapisanych zmian. Czy na pewno otworzyć A.xlsx?'
  • [problem: WORD] komunikat o błędnych odsyłaczach (pomimo, że adresy odsyłaczy są poprawne)
  • [problem: WORD] komunikat o braku połączenia (pomimo, że dysk sieciowy jest podłączony i działa poprawnie)

Możliwe generatory błędów:

  • wygląda na to, że adres sieciowy jest problemem. Najlepiej byłoby, gdyby Office rozumiał adres przyjmujący wartości sieciowe (10.0.X.X) zamiast litery dysku (szczególnie ważne podczas pracy wielu ludzi nad jednym dokumentem znajdującym się w sieci -> wtedy zmapowane lokalizacje nie muszą mieć tej samej litery)
  • dysk sieciowy jako miejsce niezaufane. Tutaj próbowałem wielu sposobów na umieszczenie dysku sieciowego w lokalizacjach zaufanych Windowsa - niestety bezskutecznie - może ktoś jest w stanie poradzić, jak to zrobić.

PYTANIE na koniec:

Czy nie ma możliwości utworzenia połączenia między takimi dwoma plikami tak, jak to jest w korespondencji seryjnej? Word musiałby umieć czytać pola  typu LINK pośredni, np. ..\A.xlsx (lub nawet LINK Excel.Sheet.12 A.xlsx, jeśli w tej samej lokalizacji). Próbowałem znaleźć makra, które umiałyby to zrobić. Znalazłem jedno, bardzo wychwalone - niemniej również zaczynało szaleć podczas pracy w lokalizacji sieciowej.


UPDATE informacji : Czasochłonność procesu aktualizacji:

Wygląda na to, że Word przy każdym polu typu 'LINK' otwiera arkusz, aktualizuje dane z arkusza, zamyka arkusz. Pól typu 'LINK' do arkusza mam 100 w dokumencie. Z tego też chyba bierze się komunikat z 'ponownym otwieraniem' arkusza...

Microsoft 365 i pakiet Office | Word | 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: 10

Sortuj według: Najbardziej pomocne
  1. Anonimowe
    2014-01-07T15:04:46+00:00

    Do wyjaśnienia:

    "Kopiujemy do pamięci zakres i wklejamy w docelowy."

    Czy to oznacza, że w pamięci będę miał zakres, z którego później będę mógł wybierać pojedyncze komórki?

    Excel:

    Wyliczam sporo rzeczy i dopiero końcowe wartości umieszczam w szablonie z Word'a - dane są rozproszone na kilka różnych arkuszy oraz na wiele rozproszonych komórek w każdym z arkuszy wewnątrz jednego pliku xlsx.

    Word:

    Treść opisowa a w niej dynamiczne pola, przykład z samego początku szablonu - proszę się nie śmiać - później są bardziej wartościowe informacje :)

    Oferta z dnia {LINK Excel.Sheet.12 C:\Users\Jakub\Desktop\A.xlsx "DANE PODSTAWOWE!W8K4" \a  \t} dla { LINK Excel.Sheet.12 C:\Users\Jakub\Desktop\A.xlsx "DANE PODSTAWOWE!W3K4" \a  \t}

    Zwracam uwagę na to, że w takiej lokalizacji (na dysku lokalnym) wsio działa bez zarzutu.

    Nie byłoby to uciążliwe, gdyby nie fakt, że raz na jakiś czas nieopatrznie pominę proces kopiowania z udziału NAS na dysk lokalny, otworzę na dysku sieciowym i muszę ubijać proces przez wzgląd na 100 błędnych aktualizacji pól (a każda z nich krzyczy osobno). Oczywiście nawet z odpowiednim adresem sieciowym, np. 10.0.5.26\Marketing\A.xlsx (lub po literze zmapowanego dysku R:\Marketing\A.xlsx)

    No i problem też, gdy kto inny chce aktualizować ofertę (bo adres odsyłaczy się nie zgadza).

    Piszę do wyjaśnienia, ponieważ nie wiem, czy do końca się wspólnie rozumiemy..

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  2. Oskar Shon 49,331 Punkty reputacji Moderator wolontariuszy
    2014-01-07T13:51:44+00:00

    Miałem na myśli procedurę pobierającą dane a nie naprawiającą linki.

    Napisanie takiej procedury nie jest takie trudne. Zacznij sam a pomogę w razie problemów.

    Zacznij tak:

    Sprawdzasz czy jest plik (jeśli nie to komunikat i wyjście z procedury) a potem deklaracje zmiennych na plik (otwieramy go), na arkusz na zakres. Kopiujemy do pamięci zakres i wklejamy w docelowy. Zamykamy otwarty plik.

    Wszystkie te operacje można wykonać tak aby user nie widział że coś jest otwierane, względnie komunikat typu... odświeżanie danych, kiedy proces trwał by dłużej niż sekund dwie.

    Polecenie otwarcia i kopiowania masz w heplie a i nagrywarka pomorze zacząć.

    Aby działało efektywnie trzeba będzie dodać i wymazać to czy tamto, ale rozwiązanie jest pod twoimi palcami.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  3. Anonimowe
    2014-01-07T13:21:46+00:00

    Podczas dodawania lokalizacji zaufanej w pakiecie MS Office 2013 (zgodnie z procedurą opisaną na stronach MS support) komunikat:

    "Wprowadzonej ścieżki nie można użyć jako zaufanej lokalizacji ze względów bezpieczeństwa. Wybierz inną lokalizację lub określony folder."

    W firmie nie używamy dysków lokalnych (nie zapisujemy tam danych, jeśli tylko to możliwe) - mamy serwery NAS do tego.

    Co do kodu VBA - jak wspominałem - znalazłem makro stworzone przez macropod'a do tworzenia ścieżek relatywnych w polu LINK. Działa świetnie (aktualizuje ścieżki w polu LINK) do momentu przeniesienia na udziały NAS'a (wtedy głupieje).

    Jeśli chodzi o pisanie czegokolwiek samemu w VBA, to jestem zbyt zielony w te klocki (nie jestem programistą).

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  4. Oskar Shon 49,331 Punkty reputacji Moderator wolontariuszy
    2014-01-07T11:50:19+00:00

    Zmapowanie było do tej pory jedynym rozwiązaniem, a dodanie w centrum zaufania dodatkowej lokalizacji do zaufanych nie stanowi problemu. Teraz można udzielać zasobów w chmurze przez SkyDrv (zmapowany folder dysku lokalnego).

    Innym sposobem na pobieranie danych jest kod VBA. Przy wykorzystaniu procedur zdarzeniowych można automatycznie pobierać dane.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  5. Usunięte

    Ta odpowiedź została usunięta z powodu naruszenia Kodeksu postępowania. Odpowiedź została zgłoszona ręcznie lub zidentyfikowana za pośrednictwem automatycznego wykrywania przed podjęciem akcji. Aby uzyskać więcej informacji, zapoznaj się z naszymKodeksem postępowania.


    Komentarze zostały wyłączone. Dowiedz się więcej