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

jezeli plik jest otwarty to zakończ, w przeciwnym wypadku otwórz go

marcindargiewicz 27 Cze 2011 11:12 1630 7
  • #1 27 Cze 2011 11:12
    marcindargiewicz
    Poziom 10  

    Witajcie mam problem,
    Mam plik z makrem. Napisałem makro:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Działa wyśmienicie, ale nie mogę sobie poradzić z dopisaniem do niego warunku, że jeżeli plik jest otwarty to aby wyświetlił MsgBox, że plik jest otwarty i zakończył makro, a jeżeli plik nie został otwarty to aby go otworzył.

    Proszę o pomoc

    Proszę pamiętać o używaniu znaczników syntax. Opcja Listing kodu. - arnoldziq

    0 7
  • Pomocny post
    #2 27 Cze 2011 12:17
    Chris_W
    Poziom 36  

    Można chyba sprawdzić błędy zwracane podczas otwierania pliku - z tego co napisano w MSDN to chyba chodzi o błąd 55.

    Cytat:

    IOException
    55
    FileName is already open, or FileName is invalid.

    0
  • #3 27 Cze 2011 12:40
    marcindargiewicz
    Poziom 10  

    Dzięki wielki, ale jestem cienki w VB czy mógłbyś mi napisać jak to powinno wyglądać

    0
  • #5 27 Cze 2011 13:50
    marcinj12
    Poziom 40  

    Ja do sprawdzania czy plik jest już otwarty, jeśli jest - ustawieniu na niego zmiennej, a jeśli nie - otwarciu go i ustawieniu na niego zmiennej, wykorzystuję taki kod:
    Gdzieś w kodzie: funkcja wyciągająca nazwę pliku z rozszerzeniem:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    i fragment robiący to co opisałem:
    Kod: vb
    Zaloguj się, aby zobaczyć kod


    Wykorzystuję tutaj fakt, że jeżeli plik o danej nazwie (którego pełną ścieżkę z rozszerzeniem mam w zmiennej plik) jest już otwarty, to nie otworzysz go po raz drugi.
    Wtedy zakładam że jest to ten sam plik który chciałem otworzyć, więc ustawiam na niego zmienną.
    Jeżeli plik nie będzie otwarty - to go najpierw otworzy, a potem ustawi na niego zmienną wbplik.

    0
  • #6 29 Cze 2011 10:49
    marcindargiewicz
    Poziom 10  

    Witaj po drobnych dopasowaniach podpowiedź działa. Nie wywala błędu, ale nie bierze też pod uwagę że plik jest już otwarty i otwiera go ponownie.

    0
  • #7 29 Cze 2011 11:01
    adamas_nt
    Moderator Programowanie

    Spróbuj z małą poprawką

    Code:
    If otwarty = true Then


    Można również przerobić Twoją procedurę wg wskazówek kolegi marcinj12 (poskładane z dwóch wątków :) )
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #8 29 Cze 2011 11:42
    marcindargiewicz
    Poziom 10  

    Super, dzięki wielkie. DZIAŁA

    0