Макрос Excel Автоматический запуск только в файле XLT, а не в файле XLS

Я использую и XLT, который содержит макросы, он создает XLS открытым и сохранить его в выбранном каталоге, проблема в том, что сохраненный файл содержит те же макросы, что и в XLT. Есть ли шанс изменить проц, чтобы сделать его сохранить сгенерированный файл без макросов?

с наилучшими пожеланиями,

Thomas

1
задан pnuts 23 February 2015 в 19:02
поделиться

2 ответа

Если ваш вопрос касается того, как автоматически запускать макрос только тогда, когда он вызывается из XLT, а не когда он вызывается из сгенерированного XLS, то, возможно, это может помочь

Private Sub Workbook_Open()
  If ThisWorkbook.Path = "" Then
     Call myMacro
  End If
End Sub

myMacro будет только вызывается, если открытый файл - XLT, а не XLS.

2
ответ дан 2 September 2019 в 22:16
поделиться

Есть несколько способов сделать это. Если вам нужны только рабочие листы и none кода, то, вероятно, самый простой способ - просто скопировать рабочие листы в новую книгу, а затем сохранить это:

Private Sub workbook_open()
    Dim wb As Workbook
    Dim saveName As String

    ThisWorkbook.Sheets.Copy
    Set wb = ActiveWorkbook

    saveName = Application.GetSaveAsFilename(fileFilter:="Excel Workbook (*.xls),     *.xls")

    If Not saveName = "False" Then
        wb.SaveAs saveName
    End If
End Sub

Если какой-то код все еще требуется в XLS тогда вам нужно будет напрямую манипулировать средой VB, чтобы удалить ненужные части. Это немного сложнее и имеет некоторые важные ограничения / предостережения , но похоже, что более простой метод, проиллюстрированный выше, может удовлетворить ваши потребности в любом случае.

0
ответ дан 2 September 2019 в 22:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: