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 API | Działanie w Apps Script |
---|---|
PrintOut | Konwertuje na Apps Script, ale interfejs Apps Script API drukuje do pliku zamiast na drukarkę. Możesz ręcznie wydrukować plik PDF. |
PrintToFile | Konwertuje 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:
- Niektóre rodzaje reguł
- Userforms
- Nieobsługiwane typy nazwanych zakresów
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
- Na komputerze otwórz przekonwertowany plik w Arkuszach Google.
- 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ą poniższego kodu. Jeśli w kodzie nie masz wyzwalaczaonOpen()
, 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); }
- Zastąp
userform_module_name
nazwą 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.
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 zakresy | Opis |
---|---|
Tabele | Nie 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ów | Nieobsługiwane w Arkuszach Google. Nie ma rozwiązania tymczasowego. |
Powiązane artykuły
- Omówienie dodatku Macro Converter
- 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