Bu VBA Eğitimi, VBA'da Kaydet ve Farklı Kaydet komutlarını kullanarak bir dosyanın nasıl kaydedileceğini kapsar.
Çalışma Kitabını Kaydet - VBA
VBA Kaydet komutu, Kaydet simgesine tıklamaya veya Kaydet Kısayolunu (CTRL + S) kullanmaya benzer şekilde bir Excel dosyasını kaydeder.
Belirtilen Bir Çalışma Kitabını Kaydet
Bir çalışma kitabını kaydetmek için çalışma kitabı nesnesine başvurun ve Kaydet komutunu kullanın.
1 | Workbooks("savefile.xlsm").Kaydet |
Etkin Çalışma Kitabını Kaydet
Not: Bu, çalışan kodu içeren ThisWorkbook'tan farklı olan VBA kodundaki mevcut etkin çalışma kitabıdır.
Çalışma Kitabını Kodun Depolandığı Yere Kaydedin
Tüm Açık Çalışma Kitaplarını Kaydet
Bu, her birini kaydederek tüm açık çalışma kitaplarında dolaşacaktır.
12345 | Çalışma kitabı olarak wb'yi karartApplication.Workbooks'ta Her wb içinwb.KaydetSonraki wb |
ReadOnly açılmamış tüm açık çalışma kitaplarını kaydet
Not: Bir çalışma kitabını Salt Okunur modunda açmak dosyanın kaydedilmesini engeller.
Dosyayı kaydetmek için Farklı Kaydet'i kullanmanız ve dosyayı farklı bir adla kaydetmeniz gerekir.
1234567 | Çalışma kitabı olarak wb'yi karartApplication.Workbooks'ta Her wb içinwb ReadOnly değilse o zamanwb.KaydetEğer sonSonraki wb |
Bir değişken tarafından tanımlanan bir çalışma kitabını kaydedin
Bu, bir çalışma kitabı nesne değişkenine atanmış bir çalışma kitabını kaydeder.
1234 | Çalışma kitabı olarak wb'yi karartset wb = workbooks("savefile.xlsm")wb.save |
Bir dize değişkeni tarafından tanımlanan bir çalışma kitabını kaydedin
Bu, adı bir dize değişkenine kaydedilen bir çalışma kitabını kaydeder.
1234 | wbstring'i dize olarak karartwbstring = "savefile.xlsm"çalışma kitapları(wbstring).kaydet |
Açıldığı sıraya göre tanımlanan bir çalışma kitabını kaydedin.
Not: Açılan ilk çalışma kitabında 1, ikinci 2 vb.
1 | çalışma kitapları(1).save |
Hücre değerine dayalı bir çalışma kitabını kaydetme
Bu, adı bir hücre değerinde bulunan bir çalışma kitabını kaydeder.
1234 | wbstring'i dize olarak karartwbstring = activeworkbook.sheets("sheet1").range("wb_save").valueçalışma kitapları(wbstring).kaydet |
Farklı Kaydet - VBA
VBA Farklı Kaydet komutu, Farklı Kaydet simgesine tıklamaya veya Farklı Kaydet Kısayolunu (Alt > F > A) kullanmaya benzer şekilde bir Excel dosyasını yeni bir dosya olarak kaydeder.
Yukarıda, hangi çalışma kitabının kaydedileceğini belirtmenin tüm yollarını belirledik. Farklı Kaydet'i kullanırken çalışma kitaplarını tanımlamak için aynı yöntemleri kullanabilirsiniz.
Farklı Kaydet, Kaydet'e benzer şekilde davranır, ancak yeni dosyanın adını da belirtmeniz gerekir.
Aslında, Farklı Kaydet'in tanımlaması gereken birçok potansiyel değişken vardır:
SaveAs Sözdizimi:
123 | çalışma kitabı nesnesi .SaveAs(FileName, FileFormat, Password, WriteResPassword, _ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _AddToMru,TextCodepage, TextVisualLayout, Local) |
Tüm SaveAs bağımsız değişkenlerinin tam açıklaması aşağıda verilmiştir. Şimdilik en yaygın örneklere odaklanacağız.
Not: Bu argümanlar parantezli dize olarak veya tanımlı değişkenler olarak girilebilir.
Sözdizimi Örnekleri Olarak Kaydet:
Çalışma Kitabı Farklı Kaydet - Aynı Dizin
1 | ActiveWorkbook.SaveAs Dosya Adı:= "yeni" |
veya
1 | ActiveWorkbook.SaveAs "yeni" |
veya
1234 | wbstring'i dize olarak karartwbstring = "yeni"ActiveWorkbook.SaveAs Dosya Adı:= wbstring |
Çalışma Kitabı Farklı Kaydet - Yeni Dizin
1 | ActiveWorkbook.SaveAs Dosya Adı:= "C:\new" |
veya
1234 | wbstring'i dize olarak karartwbstring = "C:\yeni"ActiveWorkbook.SaveAs Dosya Adı:= wbstring= |
Çalışma Kitabı Farklı Kaydet - Yeni Dizin, Dosya Uzantısını Belirt
1 | ActiveWorkbook.SaveAs Dosya Adı:= "C:\new.xlsx" |
veya
1234 | wbstring'i dize olarak karartwbstring = "C:\new.xlsx"ActiveWorkbook.SaveAs Dosya Adı:= wbstring |
Çalışma Kitabı Farklı Kaydet - Yeni Dizin, Dosya Uzantısını Belirt - Alt Yöntem
Dosya biçimini kendi bağımsız değişkeninde de belirtebilirsiniz.
1234 | .xlsx = 51 '(Mac için 52).xlsm = 52 '(Mac için 53).xlsb = 50 '(Mac için 51).xls = 56 '(Mac için 57) |
1 | ActiveWorkbook.SaveAs Dosya Adı:= "C:\yeni", DosyaFormat:= 51 |
Çalışma Kitabı Farklı Kaydet - Dosyayı Açmak için Parola Ekle
1 | ActiveWorkbook.SaveAs Dosya Adı:= "C:\new.xlsx", Parola:= "parola" |
Çalışma Kitabı Farklı Kaydet - Yazma Ayrıcalıkları için Parola Ekle
Doğru parola sağlanmazsa, çalışma kitabı Salt Okunur olarak açılır
1 | ActiveWorkbook.SaveAs Dosya Adı:= "C:\new.xlsx", WriteRes:= "parola" |
Çalışma Kitabı Farklı Kaydet - Salt Okunur Önerilen
Dosyanın salt okunur olarak açılmasını öneren bir mesaj kutusu görüntülemek için DOĞRU.
1 | ActiveWorkbook.SaveAs Dosya Adı:= "C:\new.xlsx", ReadOnlyRecommended:= DOĞRU |
Diğer Örnek Olarak Kaydet
Farklı Kaydet İletişim Kutusu Oluştur
Bu, Kullanıcıdan dosyayı kaydetmesini isteyen Farklı Kaydet İletişim Kutusunu oluşturur.
Bu basit kodun her durumda uygun olmayabileceğini unutmayın.
1 | Application.GetSaveAsFilename |
Sağlanan Varsayılan Dosya Adıyla Farklı Kaydet İletişim Kutusu Oluştur
1 | Application.GetSaveAsFilename InitialFilename:="test.xlsx" |
Sağlanan Varsayılan Dosya Adıyla Farklı Kaydet İletişim Kutusu Oluştur
1 | Application.GetSaveAsFilename InitialFilename:="test.xlsx" |
Yeni Çalışma Kitabı Oluştur ve Kaydet
Bu, yeni bir çalışma kitabı oluşturacak ve hemen kaydedecektir.
123456 | Çalışma Kitabı Olarak Dim wbwb = Çalışma Kitaplarını ayarla.AddApplication.DisplayAlerts = Yanlışwb.SaveAs Dosya Adı:=”c:\Test1.xlsx”Application.DisplayAlerts = Doğru |
Uyarıları Kaydetmeyi Devre Dışı Bırak
VBA'da kaydetme ile çalışırken, çeşitli Kaydetme Uyarıları veya İstemleri ile karşılaşabilirsiniz. Uyarıları devre dışı bırakmak için şu kod satırını ekleyin:
1 | Application.DisplayAlerts=Yanlış |
ve uyarıları yeniden etkinleştirmek için:
1 | Application.DisplayAlerts=Doğru |