Poniżej znajdziesz listę typowych problemów, które mogą wystąpić podczas konwertowania kodu VBA na kod Apps Script za pomocą konwertera makr.
Drukując je
Interfejsy VBA API, które drukują pliki, są automatycznie konwertowane na Apps Script, ale mogą działać inaczej niż oryginalny interfejs VBA API. Poniżej przedstawiamy 2 przykłady:
Interfejs VBA API | Sposób działania w Apps Script |
---|---|
PrintOut | Konwertuje dane na Apps Script, ale interfejs Apps Script API drukuje je do pliku, a nie do drukarki. Plik PDF możesz wydrukować ręcznie. |
PrintToFile | Konwertuje na Apps Script. Plik PDF zostanie zapisany w Twoim folderze MyDrive. |
Elementy nieprzekonwertowane
Poniższe funkcje nie są konwertowane przez narzędzie Macro Converter:
- niektóre typy reguł:
- Formularze użytkowników
- Nieobsługiwane typy zakresów nazwanych,
Aktywatory
Konwerter makr nie obsługuje 2 typów reguł: skrótów klawiszowych oraz niektórych reguł zależnych od zdarzeń. W wielu przypadkach możesz utworzyć te reguły ręcznie.
Skróty klawiszowe
Aby dodać skróty klawiszowe, wykonaj instrukcje importowania funkcji jako makr.
Aktywatory oparte na zdarzeniach
Niektóre zdarzenia z kodu VBA, np. BeforeClose
czy BeforeSave
, nie mają swoich odpowiedników w Apps Script, ale może da się obejść ten problem.
W przypadku zdarzeń takich jak BeforeClose
możesz utworzyć niestandardowe menu lub przycisk do wykonania działania, które musi zostać wykonane przed zamknięciem arkusza kalkulacyjnego.
Arkusze Google automatycznie zapisują każdą zmianę, dlatego w przypadku takich zdarzeń jak BeforeSave
nie można obejść tego problemu.
Formularze użytkowników
W języku VBA UserForm to okno lub okno dialogowe w interfejsie użytkownika aplikacji. Makro Konwerter makr nie konwertuje formularzy UserForm. Możesz je tworzyć ręcznie w Apps Script.
Okno tworzenia formularza użytkownika
- Na komputerze otwórz przekonwertowany plik w Arkuszach Google.
- U góry kliknij Rozszerzenia >** Apps Script**.
- Po lewej stronie edytora obok pozycji „Pliki” kliknij Dodaj plik > HTML. Zalecamy nadanie plikowi HTML takiej samej nazwy jak oryginalnemu formularzowi UserForm.
- Dodaj pola i informacje, które mają się wyświetlać w formularzu. Więcej informacji o formularzach HTML znajdziesz na stronie W3school.com.
- Po lewej stronie kliknij plik Apps Script (plik GS) ze przekonwertowanym kodem.
- Jeśli masz już w kodzie aktywator
onOpen()
, zaktualizuj go, dodając do niego poniższy kod. Jeśli w kodzie nie masz regułyonOpen()
, dodaj kod widoczny poniżej.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 .
- Otwórz Arkusz Google i załaduj ponownie stronę.
- U góry arkusza Google kliknij Formularz użytkownika > Pokaż formularz.
Zakresy nazwane
W programie Excel zakresy nazwane to nazwy nadane pojedynczej komórce lub zakresowi komórek.
W przypadku konwertowania pliku Excela na format Arkuszy Google niektóre typy zakresów nazwanych nie zostaną przekonwertowane, ponieważ nie są obsługiwane. Poniżej przedstawiamy 2 przykłady:
Nieobsługiwane zakresy nazwane | Opis |
---|---|
Tabele | Funkcja nie jest obsługiwana w Arkuszach Google, ale istnieje obejście tego problemu.
Aby odtworzyć ten zakres nazwany w Arkuszach, dodaj zakres nazwany wskazujący zakres nazwany A1 zakresu tabeli. Użyj tej samej nazwy co pierwotny zakres nazwany w kodzie VBA, aby został rozpoznany przez przekonwertowany kod. |
Lista zakresów | Nie są obsługiwane w Arkuszach Google. Nie można tego obejść. |
Powiązane artykuły
- Omówienie dodatku w ramach Macro Converter
- Sprawdzanie, czy makra VBA są zgodne
- Konwertowanie makr VBA na format Apps Script
- Naprawianie błędów w przekonwertowanym kodzie
- Obejrzyj samouczki dotyczące Macro Converter
- Lista zgodnych interfejsów VBA API