Страницы: 1
RSS
Ошибка "Run-time error 1004" при сохранении листа в отдельную книгу.
 
Добрый день.
У меня есть макрос, который копирует содержимое листа, заменяет формулы значениями, убирает объекты и  сохраняет файл с названием из ячейки.

В 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
 
Изменено: gogygo - 24.09.2014 22:54:22
 
Измените  
Код
+ "_import"
На
Код
& "_import.xls"
Возможно вот это, или числовое (в том числе дата ) значение в ячейке не хочет суммироваться со строкой.
F1 творит чудеса
 
Спасибо за идею - не помогло.
Пробовал и амперсанд и вот так:
Код
cFileName = Application.GetSaveAsFilename( _
    fileFilter:="Xls Files (*.xls), *.xls") 
и вот так
Код
cFileName = Application.GetSaveAsFilename(ActiveWorkbook.Worksheets(2).Cells(1, 2).Value + "_import", "Книга Microsoft Office Excel (*.xls), *.xls")
Изменено: gogygo - 24.09.2014 22:54:37
 
Про Мак ничего сказать не могу, а 2010 отрабатывает нормально. И прислушайтесь к Максиму - используйте амперсанд.
 
http://www.rondebruin.nl/mac/mac016.htm
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
кстати у меня он как-то странно отрабатывает в пошаговом режиме - запускаю через F8, открывает окно запроса, и при нажатии "Сохранить" дальше выполняет весь макрос без остановки до конца. Если поставить брейк-поинт на следующей строке - останавливается.
Если файл с таким именем уже открыт - он, похоже, и будет ругаться, но не в этом месте и с другой ошибкой.

The_Prist, вот, точно: 'Note: InitialFilename is the only parameter that works on a Mac
соответственно на Маке синтаксис другой, увы.
А вот на 2007 отловить не удалось.
F1 творит чудеса
 
Столкнулся с той же проблемой. Вам удалось ее решить?
Страницы: 1
Читают тему
Наверх