Sık karşılaşılan sorunları ele alın

VBA kodunuzu Macro Converter ile Apps Komut Dosyası'na dönüştürürken karşılaşabileceğiniz yaygın sorunlar aşağıda listelenmiştir.

Yazdırma

Dosyaları yazdıran VBA API'leri otomatik olarak Apps Komut Dosyası'na dönüştürülür ancak orijinal VBA API'sinden farklı şekilde çalışabilir. Aşağıda iki örnek verilmiştir:

VBA APIApps Komut Dosyası'ndaki davranış
PrintOutApps Komut Dosyası'na dönüştürülür ancak Apps Komut Dosyası API'si yazıcı yerine dosyaya yazdırır. PDF dosyasını manuel olarak yazdırabilirsiniz.
PrintToFileApps Komut Dosyası'na dönüştürür. PDF dosyası, Drive'ım klasörünüze kaydedilir.

Dönüşüm gerçekleştirilmeyen öğeler

Aşağıdaki özellikler Macro Converter tarafından dönüştürülmez ve manuel olarak dönüştürülmesi gerekir:

Tetikleyiciler

İki tür tetikleyici (klavye kısayolları ve bazı etkinliğe dayalı tetikleyiciler) makro dönüştürücü tarafından dönüştürülmez. Çoğu durumda bu tetikleyicileri manuel olarak oluşturabilirsiniz.

Klavye kısayolları

Klavye kısayolları eklemek için işlevleri makro olarak içe aktarma adımlarını uygulayın.

Etkinliğe dayalı tetikleyiciler

VBA kodundaki BeforeClose veya BeforeSave gibi bazı etkinliklerin Apps Komut Dosyası'nda karşılığı yoktur ancak geçici bir çözüm oluşturabilirsiniz.

BeforeClose gibi etkinlikler için, e-tabloyu kapatmadan önce yapılması gereken işlemi gerçekleştirmek üzere tıklanacak özel bir menü veya düğme oluşturabilirsiniz.

Google E-Tablolar her düzenlemeyi otomatik olarak kaydettiğinden BeforeSave gibi etkinlikler için geçici çözümler kullanılamaz.

Userforms

VBA'da UserForm, bir uygulamanın kullanıcı arayüzündeki (UI) pencere veya iletişim kutusudur. Makro Dönüştürücü, UserForm'ları dönüştürmez. Bunları Apps Script'te manuel olarak oluşturabilirsiniz.

Kullanıcı formu iletişim kutusu oluşturma

  1. Bilgisayarınızda, dönüştürülen dosyayı Google E-Tablolar'da açın.
  2. Üst tarafta Uzantılar > ** Apps Komut Dosyası**'nı tıklayın.
  3. Düzenleyicinin sol tarafında,"Dosyalar"ın yanındaki Dosya ekle > HTML'yi tıklayın. HTML dosyasına, orijinal VBA UserForm'unuzla aynı adı vermenizi öneririz.
  4. Formunuzda görünmesini istediğiniz alanları ve bilgileri ekleyin. W3school.com adresinden HTML formları hakkında daha fazla bilgi edinin.
  5. Sol tarafta, dönüştürülmüş kodunuzu içeren Apps Komut Dosyası dosyasını (GS dosyası) tıklayın.
  6. Kodunuzda zaten bir onOpen() tetikleyici varsa aşağıdaki kodla güncelleyin. Kodunuzda onOpen() tetikleyicisi yoksa aşağıdaki kodu ekleyin.
    function onOpen() {
     SpreadsheetApp.getUi()
         .createMenu('User Form')
         .addItem('Show Form', 'showForm')
         .addToUi();
    }
    function showForm() {
     var html = HtmlService.createHtmlOutputFromFile('userform_module_name')
         .setWidth(100)
         .setTitle('Sign-up for Email Updates');
     SpreadsheetApp.getUi().showSidebar(html);
    }
        
  7. userform_module_name yerine, eklediğiniz HTML dosyasının adını yazın.
  8. Üstte Projeyi kaydet'i tıklayın.
  9. Google E-Tablosu'na geçin ve sayfayı yeniden yükleyin.
  10. Google E-tablosu'nun üst kısmında Kullanıcı Formu > Formu Göster'i tıklayın.

Adlandırılmış aralıklar

Excel'de adlandırılmış aralıklar, tek bir hücreye veya hücre aralığına verilen adlardır.

Excel dosyanızı Google E-Tablolar'a dönüştürdüğünüzde, desteklenmedikleri için bazı adlandırılmış aralık türleri dönüştürülmez. Aşağıda iki örnek verilmiştir:

Desteklenmeyen adlandırılmış aralıklarAçıklama
TablolarGoogle E-Tablolar'da desteklenmez ancak geçici bir çözümü vardır.

Bu adlandırılmış aralığı E-Tablolar'da yeniden oluşturmak için tablo aralığının A1 gösterimine işaret eden bir adlandırılmış aralık ekleyin. Dönüştürülen kodun tanıması için VBA kodunuzda orijinal adlı aralıkla aynı adı kullanın.
Aralık listesiGoogle E-Tablolar'da desteklenmez. Geçici çözüm yoktur.