Итак, я написал макрос. Сценарий использования:

  • Я открываю свежий и новый файл CSV, загруженный откуда-то
  • Мой макрос работает и работает с данными

Поскольку я не хочу копировать и вставлять свой макрос в каждый из новых файлов CSV, я обнаружил, что могу переместить этот макрос в скрытую книгу PERSONAL.XLSB , что я и сделал. К сожалению, при попытке вызвать этот макрос из файла CSV возникает какая-то ошибка - я не знаю почему.

Вот проблемный фрагмент кода:

 Sub copySheet()
    ThisWorkbook.Sheets(1).Copy _
    After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    Sheets(1).Activate
    ThisWorkbook.Sheets(1).Name = "X1"
    ThisWorkbook.Sheets(2).Name = "X2"

End Sub

Вот ошибка, которую я получаю:

Ошибка во время выполнения «1004»:

Не удалось скопировать метод класса Worksheet

1 ответ1

0

Я нашел солитон сам. Похоже, мой код пытался запустить операцию копирования в личной книге, а не в активной. Это решение:

Private Sub copySheet()
    ActiveWorkbook.Sheets(1).Copy _
    After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
    Sheets(1).Activate
    ActiveWorkbook.Sheets(1).Name = "X1"
    ActiveWorkbook.Sheets(2).Name = "X2"

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .