Профессиональные приемы работы в Microsoft Excel

Обмен опытом => Microsoft Excel => Тема начата: Crysi от 27.02.2018, 17:58

Название: Сохранение формы без макросов с именем из нескольких ячеек
Отправлено: Crysi от 27.02.2018, 17:58
Добрый день, форумчане.

Прошу помощи знатоков. Есть необходимость сохранять заполненную таблицу с именем из ячеек, и при всем при этом чтоб таблица была без макросов и весила минимально. С созданием имени из ячеек вроде разобрался и допилил один макрос (найден на просторах интернета), но при открытии сохраненного файла выскакивает ошибка "The file format and extension of "имя файла" don't match. The file could be corrupted or unsafe. Unless you trust its source, don't open it." и созданая кнопка (можно увидеть в прикрепленном примере) тоже отображается в вновь созданом файле.
Прошу помощи допилить макрос либо возможно есть альтернатива - подсказать ее и помочь разобраться как оно работает, т.е. дать расшифровку действий в макросе, если это не задрунит конечно же.
С VBA только начинаю знакомиться, опыта в программровании нет, так что читаю форумы, паралельно смотрю ролики основ.

Заранее спасибо.
Название: Re: Сохранение формы без макросов с именем из нескольких ячеек
Отправлено: Crysi от 27.02.2018, 21:18
Еще раз добрый вечер, вроде бы как разобрался, как удалять не нужные кнопки и очищать от формул, если что не правильно, пожалуйста подскажите как улучшить.

"ActiveSheet.Shapes("Button X").Delete" где Х это номер нашей конкретной кнопки, его можно посмотреть при выделении кнопки в левом верхнем углу.
 
"ActiveWorkbook.SaveAs Filename, xlWorkbookNormal" сохраняем файл под заданным именем в формате Excel 2003

"ActiveWorkbook.Selection.SpecialCells(xlFormulas).ClearContents" эта часть кода удаляет все формулы из книги, если это необходимо.
       
Название: Re: Сохранение формы без макросов с именем из нескольких ячеек
Отправлено: boa от 27.02.2018, 23:00
Здравствуйте, Crysi,

Цитата: Crysi от 27.02.2018, 17:58
"The file format and extension of "имя файла" don't match. The file could be corrupted or unsafe. Unless you trust its source, don't open it."
так как вы при сохранении файла не указали явный формат файла (https://msdn.microsoft.com/en-us/vba/excel-vba/articles/xlfileformat-enumeration-excel), могу догадываться, что это "xlExcel8, 56, Excel 97-2003 Workbook, * .xls".
ActiveWorkbook.SaveAs NewFileName
NewFileExt = ".xls"
Excel сохранил файл в формате (https://msdn.microsoft.com/en-us/vba/excel-vba/articles/xlfileformat-enumeration-excel), установленном по умолчанию в настройках Приложения, не зависимо от расширения(указанного в имени) сохраняемого файла.
Укажите Приложению явно, что и как сохранять, и у Приложения не будет вопросов к открываемым файлам
      ActiveWorkbook.SaveAs Filename:=NewFileName, FileFormat:=56