[Excel 2007] Kopiowanie arkuszy z innego pliku

Witam, Stworzyłem arkusz, który od czasu do czasu musi być aktualizowany. Chcę robić to w ten sposób, że po kliknięciu przycisku "Aktualizuj" usuwane są 2 arkusze z danymi, następnie z pliku na serwerze kopiowane są ich 2 odpowiedniki (po prostu podmieniam arkusze). Niestety mam z tym masę problemów i nie potrafię tego zrobić. Dodatkowym problemem jest to, że w arkuszach tych są używane nazwy, więc nie chcę kopiować zawartości arkuszy (Excel się pyta przy każdej nazwie czy na pewno chcę zastąpić nazwę ze starego arkusza nazwą z nowego). Poza tym położenie i rozmiar tabel z danymi może się zmienić - tak więc najlepszym sposobem jest podmiana arkuszy. Udało mi się napisać fragment kodu, który to robi, ale po podmianie nie da się otworzyć pliku - Excel zgłasza jego uszkodzenie. Teraz kopiuję część zakresów, ale ich rozmiar może się zmienić, więc poniższy kod nie zadziała zawsze: plik = Application.GetOpenFilename("Arkusz cen (*.xlsx), *.xlsx") If plik <> False Then Workbooks.Open (plik) ActiveWorkbook.Worksheets("Opis silnika").Range("A2:I200").Copy _ (ThisWorkbook.Worksheets("Opis silnika").Range("A2:I200")) '...kopiowanie innych zakresów... ActiveWorkbook.Close End If Próbowałem też: Workbooks.Open (plik) ThisWorkbook.Worksheets("Opis silnika").delete ActiveWorkbook.Worksheets("Opis silnika").Copy After:=ThisWorkbook.Worksheets(1) Ale po tym kodzie plik już się nie chce otwierać. Proszę o pomoc i wskazówki.

Odpowiedzi: 2

Linijkę, o której piszesz wziąłem z pomocy. Zdefiniowałem w niej pliki *.xlsx jako "Arkusz cen" (użytkownikom najlepiej na każdym kroku wszystko tłumaczyć). I jestem jej pewien (testowana w wielu innych projektach). Większość mojego problemu rozwiązałem, podmieniam arkusze i pozostaje tylko jeden problem. Nazwy zawarte w tych dwóch arkuszach po przeniesieniu do mojego pliku mają nagle zakres "Arkusz", podczas gdy każda normalna nazwa ma zakres "Skoroszyt". W tym momencie formuły odwołujące się do tych nazw generują błąd (nie widzą ich). Jak zmienić zakres nazw? Choćby hurtowo wszystkich nazw zawartych w pliku.
poziom
Dodano
22.12.2008 22:03:11
plik = Application.GetOpenFilename("Arkusz cen (*.xlsx), *.xlsx") ??? Sprawdź tą linijkę dla pewności Poszukaj również pomocy na dziale .NET. Tam raczej znajdziesz odpowiedź.
xCodeLover@centrumxp.pl
Dodano
22.12.2008 17:38:32
poziom
Dodano:
20.12.2008 12:05:29
Komentarzy:
2
Strona 1 / 1