Добрый день.
У меня есть макрос, который копирует содержимое листа, заменяет формулы значениями, убирает объекты и сохраняет файл с названием из ячейки.
В Excel 2013 он отрабатывает нормально (на двух компьютерах), а на Excel 2007 и Excel for Mac выдает ошибку "Run-time error 1004".
Debug показывает строчку "cFileName ="
Как можно это исправить?
Код |
---|
Sub SaveActiveSheetWithValuesAndFormats2()
' Сохранить лист в отдельную книгу, сохранить только значения и оформление
Dim sh As Worksheet, wbNew As Workbook, cFileName As Variant
Set sh = ActiveSheet
cFileName = Application.GetSaveAsFilename(Range("B2").Value + "_import", "Книга Microsoft Office Excel (*.xls), *.xls")
If cFileName = False Then Exit Sub
Application.ScreenUpdating = False
' Копируем лист (при этом создается новый файл с этим листом)
sh.Copy
Set wbNew = ActiveWorkbook
' Заменяем формулы значениями
With wbNew.Sheets(1).UsedRange.Cells
.Value = .Value
End With
'Удаляем ВСЕ объекты на листе
Dim oSh As Object
For Each oSh In ActiveSheet.Shapes
oSh.Delete
Next
' Сохраняем файл
Application.DisplayAlerts = False
wbNew.SaveAs Filename:=(cFileName), FileFormat:=xlNormal
' Закрываем файл и возвращаемся в начало
wbNew.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
sh.Activate
End Sub
|
