Rozwiązywanie typowych problemów

Poniżej znajdziesz listę typowych problemów, które mogą wystąpić podczas konwertowania kodu VBA na Apps Script za pomocą narzędzia Macro Converter.

Drukowanie

Interfejsy API VBA, które drukują pliki, są automatycznie konwertowane na Apps Script, ale mogą działać inaczej niż oryginalne interfejsy API VBA. Oto 2 przykłady:

VBA APIDziałanie w Apps Script
PrintOutKonwertuje na Apps Script, ale interfejs Apps Script API drukuje do pliku zamiast na drukarkę. Możesz ręcznie wydrukować plik PDF.
PrintToFileKonwertuje na Apps Script. Plik PDF zostanie zapisany w folderze Mój dysk.

Produkty, które nie zostały przekonwertowane

Konwerter makr nie konwertuje tych funkcji, więc musisz je przekonwertować ręcznie:

Reguły

Konwerter makr nie konwertuje 2 rodzajów reguł: skrótów klawiszowych i niektórych reguł opartych na zdarzeniach. W wielu przypadkach możesz utworzyć te wyzwalacze ręcznie.

Skróty klawiszowe

Aby dodać skróty klawiszowe, wykonaj czynności opisane w sekcji Importowanie funkcji jako makr.

Aktywatory oparte na zdarzeniach

Niektóre zdarzenia z kodu VBA, takie jak BeforeClose lub BeforeSave, nie mają odpowiedników w Apps Script, ale możesz znaleźć obejście.

W przypadku zdarzeń takich jak BeforeClose możesz utworzyć niestandardowe menu lub przycisk, który po kliknięciu wykona działanie, które musi zostać wykonane przed zamknięciem arkusza kalkulacyjnego.

Arkusze Google automatycznie zapisują każdą zmianę, więc obejścia w przypadku zdarzeń takich jakBeforeSave nie są możliwe.

Userforms

W VBA UserForm to okno lub okno dialogowe w interfejsie użytkownika aplikacji. Konwerter makr nie konwertuje formularzy UserForm. Możesz je utworzyć ręcznie w Apps Script.

Tworzenie okna formularza użytkownika

  1. Na komputerze otwórz przekonwertowany plik w Arkuszach Google.
  2. U góry kliknij Rozszerzenia > Apps Script.
  3. Po lewej stronie edytora obok opcji „Pliki” kliknij Dodaj plik  > HTML. Zalecamy nadanie plikowi HTML takiej samej nazwy jak oryginalny formularz VBA.
  4. Dodaj pola i informacje, które mają się pojawiać w formularzu. Więcej informacji o formularzach HTML znajdziesz na stronie W3school.com.
  5. Po lewej stronie kliknij plik Apps Script (plik GS) zawierający przekonwertowany kod.
  6. Jeśli w kodzie masz już wywołanie onOpen(), zaktualizuj je za pomocą poniższego kodu. Jeśli w kodzie nie masz wyzwalacza onOpen(), dodaj poniższy kod.
    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. Zastąp userform_module_name nazwą dodanego pliku HTML.
  8. U góry kliknij Zapisz projekt .
  9. Przejdź do Arkusza Google i załaduj ponownie stronę.
  10. U góry arkusza Google kliknij Formularz użytkownika > Pokaż formularz.

Zakresy nazwane

W Excelu nazwane zakresy to nazwy nadane pojedynczej komórce lub zakresowi komórek.

Gdy przekonwertujesz plik Excela na Arkusze Google, niektóre typy nazwanych zakresów nie zostaną przekonwertowane, ponieważ nie są obsługiwane. Oto 2 przykłady:

Nieobsługiwane nazwane zakresyOpis
TabeleNie jest obsługiwana w Arkuszach Google, ale można ją obejść.

Aby odtworzyć ten nazwany zakres w Arkuszach, dodaj nazwany zakres, który wskazuje notację A1 zakresu tabeli. Użyj w kodzie VBA tej samej nazwy co w oryginalnym nazwanym zakresie, aby przekonwertowany kod mógł go rozpoznać.
Lista zakresówNieobsługiwane w Arkuszach Google. Nie ma rozwiązania tymczasowego.