Вам нужно будет самостоятельно преобразовать формулы в значения. Сделайте что-то вроде следующего:
ThisWorkbook.Worksheets("Sheet1").Copy 'create a copy in a new workbook
Dim wb As Workbook
Set wb = ActiveWorkbook 'get the new workbook
'change formulas into values
wb.Worksheets(1).UsedRange.Value = wb.Worksheets(1).UsedRange.Value
'save
wb.SaveAs Filename:="D:\sheet1.xls", FileFormat:=56, CreateBackup:=False
'close it
wb.Close SaveChanges:=False
Если вы хотите избавиться от вопроса перезаписи, проверьте, существует ли файл D:\sheet1.xls
alrady, и уничтожьте его, прежде чем сохранить. Я не объясняю это подробно, потому что для этого уже есть миллион учебников.
Улучшение
Используйте процедуру для повторного использования вашего кода:
Public Sub ExportWorksheet(ByVal SheetName As String, ByVal ExportToFile As String)
ThisWorkbook.Worksheets(SheetName).Copy
Dim wb As Workbook
Set wb = ActiveWorkbook
wb.Worksheets(1).UsedRange.Value = wb.Worksheets(1).UsedRange.Value
If Dir(ExportToFile) <> vbNullString Then Kill ExportToFile
wb.SaveAs Filename:=ExportToFile, FileFormat:=56, CreateBackup:=False
wb.Close SaveChanges:=False
End Sub
Sub TestIt()
ExportWorksheet SheetName:="Sheet1" ExportToFile:="D:\sheet1.xls"
ExportWorksheet SheetName:="Sheet2" ExportToFile:="D:\sheet2.xls"
End Sub
Обратите внимание: всякий раз, когда вам кажется, что вам нужно скопировать код, разбивайте его на отдельные процедуры, чтобы избежать избыточности.