Ten przewodnik zawiera listę typowych problemów, które mogą wystąpić podczas konwertowania kodu Visual Basic for Applications (VBA) na Apps Script za pomocą Macro Converter.
Drukowanie plików
Interfejsy API VBA, które drukują pliki, są automatycznie konwertowane na Apps Script, ale mogą działać inaczej niż oryginalne interfejsy API VBA. W tabeli poniżej znajdziesz 2 przykłady:
| VBA API | Działanie w Apps Script |
|---|---|
PrintOut | Konwertuje na Apps Script, ale interfejs Apps Script API drukuje do pliku zamiast na drukarkę. Ręcznie wydrukuj plik PDF. |
PrintToFile | Konwertuje na Apps Script. Plik PDF zostanie zapisany w folderze Mój dysk. |
Produkty, które nie zostały przekonwertowane
Te funkcje nie są konwertowane przez konwerter makr i muszą zostać przekonwertowane ręcznie:
- Niektóre rodzaje reguł
- Userforms
- Nieobsługiwane typy nazwanych zakresów
Aktywatory
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 spróbować 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.
Obejścia zdarzenia BeforeSave nie są możliwe, ponieważ Arkusze Google automatycznie zapisują zmiany w miarę ich wprowadzania.
Userforms
W VBA UserForm to okno lub okno dialogowe w interfejsie użytkownika aplikacji. Makro Converter nie konwertuje formularzy UserForm. Możesz je utworzyć ręcznie w Apps Script.
Tworzenie okna formularza użytkownika
- Otwórz przekonwertowany plik w Arkuszach na komputerze.
- U góry kliknij Rozszerzenia > Apps Script.
- Po lewej stronie edytora obok opcji „Pliki” kliknij Dodaj plik > HTML. Zalecamy nadanie plikowi HTML takiej samej nazwy jak oryginalny formularz VBA.
- Dodaj pola i informacje, które mają się pojawiać w formularzu. Więcej informacji o formularzach HTML znajdziesz na stronie W3school.com.
- Po lewej stronie kliknij plik Apps Script (plik GS) zawierający przekonwertowany kod.
- Jeśli w kodzie masz już wywołanie
onOpen, zaktualizuj je za pomocą tego kodu: Jeśli w kodzie nie masz wyzwalaczaonOpen, dodaj ten 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); }
- Zastąp
userform_module_namenazwą dodanego pliku HTML. - U góry kliknij Zapisz projekt .
- Przejdź do arkusza Google i załaduj ponownie stronę.
- 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.
Podczas konwertowania plików Excela na Arkusze niektóre typy zakresów nazwanych nie są konwertowane, ponieważ są nieobsługiwane. W tabeli poniżej znajdziesz typowe przykłady:
| Nieobsługiwane nazwane zakresy | Opis |
|---|---|
| Tabele | Nieobsługiwane w Arkuszach, ale istnieje obejście.
Aby odtworzyć ten zakres nazwany w Arkuszach, dodaj zakres nazwany, 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ów | Nieobsługiwane w Arkuszach. Nie ma sposobu obejścia tego problemu. |
Powiązane artykuły
- Omówienie dodatku Macro Converter do Google Workspace
- Sprawdzanie zgodności makr VBA
- Przenoszenie makr VBA do Apps Script
- Naprawianie błędów w przekonwertowanym kodzie
- Obejrzyj samouczki dotyczące konwertera makr
- Lista zgodnych interfejsów API VBA