Próba stworzenia podprogramu w VBA

Sep 17 2020

Mam zadanie stworzyć podprogram z następującymi wymaganiami:

□ Stwórz nowy zeszyt ćwiczeń
□ Skopiuj tabelę zawartą w „2. Karta Formatowanie w pliku Excel
□ Wklej tabelę do nowego skoroszytu
□ Zmień nazwę karty arkusza w nowym skoroszycie na „Dane tabeli”
□ Zapisz nowy skoroszyt w folderze utworzonym na pulpicie, używając następującej nazwy: „_ Ocena programu Excel VBA "
□ Zapisz skoroszyt jako arkusz z włączoną obsługą makr
□ Uczyń uniwersalną ścieżkę folderu, aby inne osoby mogły również tworzyć ten folder
□ W tytule pliku dodaj dzisiejszą datę za pomocą funkcji formatu daty, używając następującego formatu: dd-mmm- rrrr

Kod, który mam do tej pory, to:

Sub Req1()
  Set NewBook = Workbooks.Add
  With NewBook
  .Title = "Table Data"
  Worksheets("2. Formatting").Activate
  Range("B3:R13").Copy Destination:=Worksheets(“Table Data”).Range(“A1”)
  ActiveWorkbook.SaveAs Filename:="C:\Users\Public\Desktop\Starks_Craig  Excel Assessment VBA\Starks_Craig  Excel Assessment VBA.xlsm" & Format(Date, "ddmmyyyy")
End Sub

Linia „Zakres („ B3: R13 ”). Miejsce docelowe kopiowania: = Arkusze robocze („ Dane tabeli ”). Wiersz„ Zakres („A1”) ”jest wyświetlany na czerwono jako błąd kompilacji i nie wiem dlaczego. Nie jestem też do końca pewien, czy mój kod zawiera wyczerpujący opis tego żądania. Proszę o pomoc, ponieważ jestem całkiem nowy w VBA.

Powinienem również:

  1. Utwórz przycisk na karcie Deweloper, aby menedżer mógł po prostu uruchomić makro
  2. Przypisz przycisk do pierwszego utworzonego podprogramu
  3. Powtórz 1 i 2 dla drugiego podprogramu

Co nie jestem pewien, jak to zrobić, ponieważ kiedy próbuję wybrać makro, które zrobiłem, wyświetla mi się błąd. Każda pomoc zostanie doceniona.

Odpowiedzi

2 Scott Sep 18 2020 at 01:00

Szybka, pierwsza odpowiedź: popełniłeś powszechny błąd. Wygląda na to, że wpisałeś część swojego kodu w edytorze tekstu (takim jak Microsoft Word) i skopiowałeś go do edytora VBA:

  Range("B3:R13").Copy Destination:=Worksheets(“Table Data”).Range(“A1”)
        ↑      ↑                               ⇑          ⇑        ⇑  ⇑
          good                                      bad            bad

Pierwsze dwa znaki cudzysłowu są poprawnymi cudzysłowami kodowymi. Ostatnie cztery cudzysłowy to cudzysłowy edytora tekstu i powodują błędy w kodzie.