Макрос Excel Автоматический запуск только в файле XLT, а не в файле XLS - PullRequest
1 голос
/ 11 августа 2010

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

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

Thomas

Ответы [ 2 ]

2 голосов
/ 11 августа 2010

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

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

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

0 голосов
/ 11 августа 2010

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

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, чтобы удалить ненужные части.Это немного сложнее и имеет некоторые важные ограничения / предостережения , но похоже, что простой способ, показанный выше, может в любом случае удовлетворить ваши потребности.

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