Workbook.save - "Следующие функции не могут быть сохранены в книгах без макросов..."

Моя подпрограмма открывает файл.xlsm в новом экземпляре Excel, вносит изменения в файл и сохраняет изменения.

Однако, несмотря на тот факт, что открываемый файл -.xlsm, при workbook.save я получаю сообщение с предупреждением "следующие функции не могут быть сохранены в книгах без макросов..."

Это не имеет смысла для меня, потому что файл.xlsm. Есть идеи?

Изменить: я думаю, что я нашел источник проблемы. Хотя переменная "путь" содержит C:\file.xlsm, wkb.path пуст. (см. Debug.print ниже). Почему wkb.path пуст?

    Set XL = New Excel.Application
    XL.Visible = False

    For Each Path In XLSMPaths

        Set wkb = XL.Workbooks.Add(Path)

        Debug.Print Path      ' "C:\file.xlsm" 
        Debug.Print wkb.path  ' ""
        Debug.print wkb.name  ' "file"      

        wkb.Save   '<- alert message "The following features cannot be saved in macro-free workbooks..."

    Next Path

1 ответ

По умолчанию метод.save сохраняет файл как.xls или.xlsx (в зависимости от вашей версии excel), вам нужно принудительно установить это с помощью.saveas

wkb.SaveAs Filename:=MyNewPathFilename, FileFormat:=xlOpenXMLWorkbookMacroEnabled

очевидно, измените переменную "MyNewPathFilename" на то, что вы хотите сохранить файл, как, вероятно, хотите взять путь и проверить, что он заканчивается в.xlsm, а затем передать его в эту переменную

Другие вопросы по тегам