Как дублировать лист, не дублируя его частный субкод - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь продублировать лист с макросом, но при этом дублируется и приватная подпрограмма, чего я не хочу, потому что впоследствии она мешает другому макросу модуля. Я видел этот пост Скопируйте лист без копирования кода и пробовал, но он не работает должным образом. Некоторые идеи о том, как это сделать?

Sub Export()

Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Application.CutCopyMode = False

Sheets("CB").Select
MonthID = Range("N2").Value
YearID = Range("O2").Value
saldoID = Range("O18").Value

ActiveSheet.Unprotect
ActiveSheet.Copy After:=Sheets("CB")

' Get the code/object name of the new sheet...
Dim Code As String
Code = ActiveSheet.CodeName

' Remove all lines from its code module...
With ThisWorkbook.VBProject.VBComponents(Code).CodeModule
    .DeleteLines 1, .CountOfLines
End With

Последний шаг (.DeleteLines 1, .CountOfLines) всегда вызывает ошибку: «Не удается войти в режим прерывания в данный момент» - Ошибка времени выполнения 1004 Приложение определена или объект определена ошибка.

Почему, что не так или отсутствует ?? Спасибо

1 Ответ

2 голосов
/ 25 января 2020

Один простой способ:

  1. скопировать лист в новую книгу
  2. сохранить новую книгу как .xlsx
  3. закрыть новую книгу
  4. повторно открыть новую .xlsx рабочую книгу
  5. скопировать лист без макросов обратно в исходную книгу

Код VBA для этого прост; Вы также можете включить:

повторно закрыть .xlsx kill (удалить) рабочую книгу .xlsx
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...