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.

VBA Excel - ochrona arkusza, a zapis pliku jako txt

Andie 01 Lis 2016 17:44 762 6
  • #1 01 Lis 2016 17:44
    Andie
    Poziom 20  

    Witam,

    mam problem z zapisem skoroszytu, jako plik txt, przy włączonej ochronie arkusza (z hasłem).
    Wszystko działa dobrze, dopóki nie zabezpieczę kodu VBA hasłem - wówczas pojawia się:
    Run-time error '1004':
    Method 'SaveAs' of object'_Workbook' failed

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Ochronę arkusza włączam w zdarzeniu Workbook Open z parametrem UserInterfaceOnly:=True

    Jeśli zapisuję do xls, to wszystko jest w porządku. Problem tylko z zapisem do txt.
    Co jest nie tak?

    andie

    0 6
  • #2 01 Lis 2016 18:14
    clubs
    Poziom 30  

    Witam
    A patrzyłeś tak

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod

    0
  • #3 01 Lis 2016 19:51
    Andie
    Poziom 20  

    clubs napisał:

    A patrzyłeś tak

    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    Tak. Ten sam efekt.

    0
  • #4 01 Lis 2016 20:46
    JRV
    Specjalista - VBA, Excel

    Hmm... Mam Excel 2003

    Code:
    ActiveWorkbook.SaveAs Filename:="C:\!\Test1", _
    
    FileFormat:=xlTextPrinter
    ActiveWorkbook.Close SaveChanges:=False
    wszystko w porządku

    2007 to samo
    bez .Unprotect

    0
  • #5 01 Lis 2016 21:11
    Andie
    Poziom 20  

    JRV napisał:
    Hmm... Mam Excel 2003
    Code:
    ActiveWorkbook.SaveAs Filename:="C:\!\Test1", _
    
    FileFormat:=xlTextPrinter
    ActiveWorkbook.Close SaveChanges:=False
    wszystko w porządku

    2007 to samo
    bez .Unprotect


    Z włączoną ochroną VBA i ochroną arkusza na hasło?
    Załączam plik.
    Hasło do VBA: "abc"

    0
  • Pomocny post
    #6 01 Lis 2016 22:02
    JRV
    Specjalista - VBA, Excel

    ma byc xlTextPrinter(=36) lub xlPrinter(=2, jak w makro)?

    Dodano po 4 [minuty]:

    Andie napisał:
    With ActiveWorkbook
    .Unprotect
    Workbook to nie jest arkusz, tylko skoroszyt
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    dziala poprawnie

    Dodano po 5 [minuty]:

    P.S. xlPrinter zapisze plik .SLK, nie .PRN

    0
  • #7 01 Lis 2016 22:10
    Andie
    Poziom 20  

    Kombinowałem z różnymi wersjami i pomyliłem się przy kopiowaniu.
    Ochronę arkusza wyłączałem też oczywiście.
    Typ pliku również pomylony, powinien być xlTextPrinter

    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    A, czyli zapisać arkusz, a nie skoroszyt...
    Faktycznie, działa.
    Dzięki :)

    0