Как сохранить файл без кода Excel VBA в нем? - PullRequest
0 голосов
/ 30 марта 2020

Ниже приведен мой код для сохранения файла без кодов VBA.

Сохраняется вместе с кодами VBA.

Sheets.Select
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.DisplayAlerts = False
ThisWorkbook.SaveAs "C:\Users\sgffa\Desktop\Profile_Macros\NEW\" & NFolder & "\" & "C", 
FileFormat:=xlExcel8
Application.DisplayAlerts = True
Next x
End Sub

Ответы [ 4 ]

0 голосов
/ 30 марта 2020

SaveAs Confusion

Я тоже в замешательстве. Когда вы сохраняете рабочую книгу с макросами (.xlsm) как рабочую книгу с макросами (.xlsx), рабочая книга остается открытой, но в ней есть код. Но хорошо, что он сохраняется без кода. Теперь вы можете сохранить его «вручную» и сохранить, так как в следующий раз он будет без кода (макросов).

Код должен демонстрировать следующее:

  • Хорошей практикой будет начать с Option Explicit, который поможет вам предупредить вас, когда что-то не так.
  • Хорошей практикой является использование констант в начале кода, особенно для таких длинных путей к файлам, поэтому когда вам нужно изменить их, вы можете легко их найти.
  • Когда вы отключаете событие, есть вероятность, что вы не сможете включить его снова, если не будете осторожны. Если возникает ошибка, вам нужно перенаправить код, чтобы снова включить эти события.
  • Если вы хотите закрыть книгу, используйте строку ThisWorkbook.Close
Option Explicit

Sub SaveMacroDisabled()

    Const strPath = "I:\Excel\MyDocuments\Test\Test4\"
    Const strXLSX = "BookMacroDisabled"

    On Error GoTo ProgramError

    Application.DisplayAlerts = False

        ThisWorkbook.SaveAs strXLSX, _
          FileFormat:=xlWorkbookDefault

SafeExit:

    Application.DisplayAlerts = True

    ' ThisWorkbook.Close

Exit Sub

ProgramError:

    MsgBox "An unexpected error occurred"
    On Error GoTo 0
    GoTo SafeExit

End Sub
0 голосов
/ 30 марта 2020

вы можете сначала скопировать листы в новую книгу, а затем сохранить ее

Sheets.Copy
Sheets.Select
Cells.Copy
Cells.PasteSpecial xlPasteValues
Application.CutCopyMode = False
With ActiveWorkbook
    Application.DisplayAlerts = False
    .SaveAs "C:\Users\sgffa\Desktop\Profile_Macros\NEW\" & NFolder & "\" & "C.xlsx"
    Application.DisplayAlerts = True
    .Close True
End With
0 голосов
/ 30 марта 2020

от

 ThisWorkbook.SaveAs "C:\Users\sgffa\Desktop\Profile_Macros\NEW\" & NFolder & "\" & "C", FileFormat:=xlExcel8

до этого:

ThisWorkbook.SaveAs "C:\Users\sgffa\Desktop\Profile_Macros\NEW\" & NFolder & "\" & "C" & ".xlsx", FileFormat:=xlOpenXMLWorkbook
0 голосов
/ 30 марта 2020

Сохраните ваш проект как xlsx вместо xlsm, тогда код должен быть сохранен

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