Wątek przeniesiony 2021-01-28 13:23 z Inne języki programowania przez cerrato.

Dublujące się ścieżki do plików w formułach vba excel.

0

Witam, mam następujące pytanie: gdzie tkwi problem w poniższym kodzie vba, który ma za zadanie podlinkować kolejne komórki w tabeli do źródła z innego pliku xls, znajdującego się w tym samym katalogu, co ten zawierający skrypt?

Set arkuszUmorzen = plikCal.Worksheets(1)
Set plikBudynek = Workbooks.Open(ThisWorkbook.Path & "\" & arkuszN.Cells(licznik - 4, 4).Value, UpdateLinks:=xlUpdateLinksAlways)
Set arkuszBudynek = plikBudynek.Worksheets(1)
ostatniWiersz = WorksheetFunction.Match("Razem", arkuszBudynek.Columns(1), 0)

arkuszUmorzen.Cells(licznik, licznik2).Formula = "='[" & ThisWorkbook.Path & "\" & arkuszN.Cells(licznik - 4, 4).Value & "]Arkusz1'!" & plikBudynek.Worksheets(1).Cells(ostatniWiersz, licznik2).Address(0, 0)

Teoretycznie ten fragment kodu (wg mojego oka) jest napisany zgodnie z wytycznymi, ale wynik wklejenia formuły po odpaleniu jest taki:

='C:\Users\Snoopy\Desktop\spoldzielnia\[C:\Users\Snoopy\Desktop\spoldzielnia\[umorzeniaBudynek1001.xls]Arkusz1]Arkusz1]umorzeniaBudynek1001.xls]Arkusz'!C47

Nie mam pojęcia, dlaczego ścieżki są dublowane i zagnieżdżane jedna w drugiej - albo zmęczenie, albo ślepota. Będę wdzięczny za zerknięcie

0

Niestety, tylko Ty wiesz, co masz w danych komórkach.

0

Elektroda się robi?

0
Marcin.Miga napisał(a):

Niestety, tylko Ty wiesz, co masz w danych komórkach.

Faktycznie - ze zmęczenia nawet posta porządnie nie opisałem xD

To jeszcze raz dokładniej:
ArkuszUmorzen to skoroszyt z danymi podsumowującymi - tymi, w których chcę zrobić dla każdego wiersza podlinkowanie z pozostałych plików. ArkuszN zawiera same nazwy plików w formacie abc.xls (bez ścieżki).
ArkuszBudynek zawiera dane wraz z następującym po nich wierszem podsumowującym (o nr = ostatniWiersz).

No i finalnie w arkuszu umorzeń (mowa o tym ostatnim wierszu wklejonego przeze mnie kodu) chcę aby formuła linkowała jeden plik po drugim wiersze podsumowania (liczniki są z pętli). Zrobiłem nawet test w postaci msgbox'a, w którym wypisałem na ekran stworzonego przeze mnie string'a z formułą no i msgbox wyświetla poprawnie stworzoną formułę z adresem komórki na końcu.

A gdy to samo podpinam już pod docelową komórkę w arkuszuUmorzeń, to wtedy niestety robi się ten dubel w ścieżce (jak w 1. poście). I nie wiem czy brakuje mi w tej formule jakiegoś znaczka, czy może czegoś nie domknąłem (i nie widzę tego)...

*edit: * problem rozwiązany - okazało się, iż wystarczy przenieść kod z arkusza1 do oddzielnego modułu i ruszyło (chociaż nadal nie wiem, czemu po skróceniu formuły do samej nazwy pliku z arkuszaN dokleja automatem ścieżkę)

1 użytkowników online, w tym zalogowanych: 0, gości: 1