Попытка сделать подпрограмму на VBA

Sep 17 2020

У меня есть задание создать подпрограмму с такими требованиями:

□ Создайте новую рабочую тетрадь
□ Скопируйте таблицу, содержащуюся в «2. Вкладка «Форматирование» в файле Excel
□ Вставьте таблицу в новую книгу
□ Переименуйте вкладку рабочего листа в новой книге на «Данные таблицы»
□ Сохраните новую книгу в папке, созданной на рабочем столе, под следующим именем: «_ Excel Assessment VBA "
□ Сохраните книгу как рабочий лист с поддержкой макросов
□ Сделайте путь к папке универсальным, чтобы другие люди тоже могли создать эту папку
□ В заголовке файла добавьте сегодняшнюю дату, используя функцию формата даты, используя следующий формат: dd-mmm- гггг

Код, который у меня есть для этого, таков:

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

Строка «Range (« B3: R13 »). Copy Destination: = Worksheets (« Table Data »). Range (« A1 »)» отображается красным цветом как ошибка компиляции, и я не уверен, почему. Кроме того, я не совсем уверен, что мой код исчерпывает этот запрос. Я прошу помощи, так как я новичок в VBA.

Кроме того, я должен:

  1. Создайте кнопку на вкладке "Разработчик", чтобы ваш менеджер мог просто запустить ваш макрос.
  2. Назначьте кнопку первой подпрограмме, которую вы создали
  3. Повторите 1 и 2 для второй подпрограммы.

Что я не знаю, как это сделать, потому что когда я пытаюсь выбрать макрос, который я сделал, он выдает ошибку. Любая помощь в этом будет принята с благодарностью.

Ответы

2 Scott Sep 18 2020 at 01:00

Быстрый первый ответ: вы совершили частую ошибку. Похоже, вы набрали часть своего кода в текстовом редакторе (например, Microsoft Word) и скопировали его в редактор VBA:

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

Первые два символа кавычек правильные, кавычки кода. Последние четыре кавычки являются кавычками текстового редактора и вызывают ошибки в коде.