Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 5
  • 4.6K

Czy z poziomu VBA można zapisać aktywny skoroszyt z obsługą makr jako zwykły .xlsx np. w celu rozesłania?

Mam raport, który wypełniam automatycznie przy użyciu makra, na końcu makra chcę zapisać kopię pliku jako zwykły .xlsx, aby przesłać gdzieś dalej. Wykorzystując SaveCopyAs tworzę tylko kopię .xlsm, a wykorzystując SaveAs i podając odpowiedni parametr FileFormat mogę uzyskać .xlsx, ale jednocześnie staje się on aktywnym skoroszytem, czego nie chcę.

Szymon_Siemiaszko
  • Zapytał
  • @ Szymon_Siemiaszko | 07.03.2014
    • lider
    • laureat
    • 18
    • 7
    • 30

Odpowiedź (1)

  • 8

Niestety, nie ma takiej komendy. Można to jednak prosto obejść, np.:

Sub ZapiszBezMakr()

   ActiveWorkbook.Sheets.Copy ' tworzy kopię skoroszytu - bez makr; ta kopia jest teraz ActiveWorkbook

   ActiveWorkbook.SaveAs Filename:="C:\Raport.xlsx", FileFormat:=51 ' zapis kopii na dysku

   ActiveWorkbook.Close ' zamknięcie kopii

End Sub

  • Odpowiedział
  • @ | 07.03.2014
  • TRENER ALTKOM AKADEMII
Komentarze
Tak też zrobiłem :) dziękuję za potwierdzenie.
Skomentował : @ Szymon_Siemiaszko ,10.03.2014
  • 18
  • 7
  • 30