Rozwiązywanie typowych problemów

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 APISposób działania w Apps Script
PrintOutKonwertuje dane na Apps Script, ale interfejs Apps Script API drukuje je do pliku, a nie do drukarki. Plik PDF możesz wydrukować ręcznie.
PrintToFileKonwertuje na Apps Script. Plik PDF zostanie zapisany w Twoim folderze MyDrive.

Elementy nieprzekonwertowane

Poniższe funkcje nie są konwertowane przez narzędzie Macro Converter:

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

  1. Na komputerze otwórz przekonwertowany plik w Arkuszach Google.
  2. U góry kliknij Rozszerzenia >** Apps Script**.
  3. Po lewej stronie edytora obok pozycji „Pliki” kliknij Dodaj plik > HTML. Zalecamy nadanie plikowi HTML takiej samej nazwy jak oryginalnemu formularzowi UserForm.
  4. Dodaj pola i informacje, które mają się wyświetlać w formularzu. Więcej informacji o formularzach HTML znajdziesz na stronie W3school.com.
  5. Po lewej stronie kliknij plik Apps Script (plik GS) ze przekonwertowanym kodem.
  6. Jeśli masz już w kodzie aktywator onOpen(), zaktualizuj go, dodając do niego poniższy kod. Jeśli w kodzie nie masz reguły onOpen(), 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);
    }
        
  7. Zastąp userform_module_name nazwą dodanego pliku HTML.
  8. U góry kliknij Zapisz projekt .
  9. Otwórz Arkusz Google i załaduj ponownie stronę.
  10. 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 nazwaneOpis
TabeleFunkcja 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ówNie są obsługiwane w Arkuszach Google. Nie można tego obejść.