Saveas 1c excel параметры
Многие знают, что Excel гораздо старше 1С. На мой взгляд, это очень успешный продукт, и нареканий о нем я не слышал. Excel прост и универсален. Он способен выполнять не только простые арифметические операции, но и сложные вычисления, построение графиков и т.п. Знаю примеры, когда организации до перехода на 1С вели часть бухгалтерии в Excel. Многие и сейчас параллельно используют две программы. В этой статье рассмотрим способы обмена данными между 1С и Excel.
Многие пользователи для удобства работы сохраняют таблицы 1С (печатные формы) в формате Excel (*.xls). После чего в полученном файле делают различные группировки, сортировки, вычисления и т.п. Связано это с тем, что в таблицах 1С нет такого огромного функционала как в таблицах Excel. Но в версии 1С 8.0 есть нововведения, делающих работу с таблицами более комфортной.
Замечание: В Excel разделителем дробной части считается символ ",". Поэтому перед сохранением таблицы 1С в формате Excel замените в ней другой разделитель (например ".") на ",". Иначе в Excel с этими числами не удастся произвести вычисления, или они вообще не будут отображаться как числа. Например, в таблице 1С "15.2" отобразится в Excel как "15.фев".
Доступ из 1С к Excel производится посредством OLE. Например, код
Попытка
Эксель = СоздатьОбъект( "Excel.Application" );
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!" );
Возврат;
КонецПопытки;
позволит нам получить доступ через переменную "Эксель" к запущенному приложению Excel. А далее уже можно получить доступ к книге (файлу), листу и ячейке с данными. Далее примеры кода.
Открытие книги (файла):
Книга = Эксель . WorkBooks . Open ( ПутьКФайлу );
ПутьКФайлу - полный путь к файлу книги Excel.
Выбор листа книги для работы с ним:
Лист = Книга . WorkSheets ( НомерЛиста );
или
Лист = Книга . WorkSheets ( ИмяЛиста );
НомерЛиста - номер листа в книге, ИмяЛиста - имя листа в книге.
Получение значения ячейки листа:
Значение = Лист . Cells ( НомерСтроки , НомерКолонки ). Value ;
НомерСтроки, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка.
Важно: не забывайте поле выполнения нужных действий добавлять код Эксель . Quit (); , иначе запущенный процесс останется незавершенным и будет занимать память и процессор компьютера.
Для вывода (выгрузки) данных в Excel необходимо либо открыть существующую книгу, либо создать новую, и выбрать рабочий лист для вывода данных. Открытие существующей книги описано выше, а для создания новой книги нужно использовать следующий код:
Попытка
Эксель = СоздатьОбъект( "Excel.Application" );
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!" );
Возврат;
КонецПопытки;
Книга = Эксель . WorkBooks . Add ();
Так как при создании книги в Excel автоматически создаются листы (Сервис->Параметры->Общие->Листов в новой книге), то нужно лишь произвести выбор листа, с которым будет вестись работа:
Лист = Книга . WorkSheets ( НомерЛиста );
либо добавить в книгу новый лист, если необходимо:
Лист = Книга . Sheets . Add ();
Следующим шагом будет установка значения ячейки:
Лист . Cells ( НомерСтроки , НомерКолонки ). Value = Значение ;
НомерСтроки, НомерКолонки - номер строки и номер колонки, на пересечении которых находится ячейка.
И в конце нужно произвести запись созданной книги:
Попытка
Книга . SaveAs ( ПутьКФайлу );
Исключение
Сообщить(ОписаниеОшибки() + " Файл не сохранен!" );
Возврат;
КонецПопытки;
ПутьКФайлу - полный путь к файлу книги Excel (включая имя).
Важно: не забывайте, что в имени файлов не должно содержаться символов \ / : * ? " > Часто используемые методы для чтения/установки значений в Excel.
Как осуществить чтение/запись данных из/в Excel на языке 1с (используя COM-объект)
Основные методы, принципы и хитрости, используемые при работе с EXCEL через COM-объект
Чтение данных из Excel
Доступ из 1С к Excel производится посредством OLE. Создание COM-объекта:
Теперь используя переменную Эксель можно управлять приложением Excel.
- Внимание! Microsoft Excel должен быть установлен на компьютере!
Следующая команда откроет книгу:
Перед тем, как начать считывание данных, укажем лист книги, с которого будем считывать данные:
Нумерация листов книги начинается с 1. Общее количество листов можно получить, используя следующую команду:
Лист можно выбрать по имени листа в книге:
Имя листа в книге можно получить по номеру:
Точно так же можно задать имя листа:
Итак, мы открыли книгу и выбрали лист, теперь посмотрим, сколько строк и колонок на выбранном листе:
Получим значения ячейки листа в строке НомерСтроки и в колонке НомерКолонки:
Ниже приведен отрывок кода, запустив который мы прочитаем все данные с первой страницы:
После выполнения действий необходимо закрыть книгу:
Выгрузка данных в Excel
Для вывода (выгрузки) данных в Excel необходимо либо открыть существующую книгу, либо создать новую, и выбрать рабочий лист для вывода данных.
Для создания новой книги можно использовать следующий код:
При создании книги автоматически создаются листы (по умолчанию 3). Нам остается только выбрать нужный:
Или добавить в книгу новый лист:
Добавим в ячейку на листе значение:
После выполнения действий необходимо закрыть книгу:
Как программно сохранить файл Excel в формате 2003 года
Часто используемые методы Excel
Хитрости Excel
Как выборочно разрешить / запретить редактирование ячеек листа
Как запретить появление на экране всяких вопросов от Excel
Excel, чтоб вопрос не задавал:
Как добавить лист Excel в конец списка листов книги или после конкретного листа (а не в начало книги)
Метод работает для платформ 1С v8.
Как программно скрыть колонку файла Excel
Как программно назначить ячейке файла Excel перенос по словам
Как обработать файл xls, если Excel не установлен на компьютере
Для этого можно использовать метод
Код для 7.7, решающий такую задачу, будет выглядеть примерно так:
Как указать цвет шрифта в ячейке, цвет рамки, цвет фона
Организация автоматической обработки файлов xls из выбранной папки
Создание кнопки в Excel в 7.7
текст макроса пишется в переменную st
Как подключиться к запущенному Excel-евскому файлу в реальном времени, изменить его и даже не сохранять, а просто переключить окно на 1С и сразу же выгружать данные в табличную часть, лишь переключив окна
Описание команды ПолучитьCOMОбъект
создает новый документ Excel. В дальнейшем этот документ может быть программно заполнен и сохранен в файл.
Если первый параметр функции пропущен, то будет произведена попытка получить активный объект указанного типа. Если активного объекта указанного типа в настоящий момент не существует, то будет вызвано исключение. Например, в результате выполнения оператора
Переменная П получит значение типа COMОбъект, соответствующее активному приложению MS Excel, если таковое имелось, или будет вызвано исключение, если активных экземпляров MS Excel не было.
Пример:
&НаКлиенте
Процедура ФайлНачалоВыбора ( Элемент , ДанныеВыбора , СтандартнаяОбработка ) //необходимо в событии "НачалоВыбора" поля ввода вызвать ДиалогВыбораФайла
Диалог = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Открытие );
Диалог . Заголовок = "Выберите файл Excel" ;
Диалог . ПредварительныйПросмотр = Ложь;
Диалог . Фильтр = "(*.xls,*.xlsx)|*.xls;*.xlsx;|Microsoft Excel 97/2000/XP/2003 (*.xls)|*.xls|Microsoft Excel 2007/2010 (*.xlsx)|*.xlsx" ;
Если ЗначениеЗаполнено ( Объект . Файл ) Тогда
Диалог . ПолноеИмяФайла = Объект . Файл ;
КонецЕсли;
Если Диалог . Выбрать () Тогда
Объект . Файл = Диалог . ПолноеИмяФайла ;
КонецЕсли;
&НаСервере
Процедура ЗагрузитьИзXLS () // в документ Поступление материалов
// Попытка открытия файла Excel
Попытка
Excel_App = Новый COMОбъект ( "Excel.Application" );
Excel_App . WorkBooks . Open ( Объект . Файл );
Исключение
Сообщить ( "Произошла ошибка при открытии файла " + СокрЛП ( ОписаниеОшибки ())+ "! Операция прервана!" );
Возврат;
КонецПопытки;
// Попытка выбрать первый лист (можно указать другой)
Попытка
Excel_App . Sheets ( 1 ). Select ();
Исключение
// Если первый лист не найден - закрываем файл
Excel_App . ActiveWorkbook . Close ();
Excel_App = 0 ;
Сообщить ( "Первый лист не найден!" );
ОтменитьТранзакцию ();
Возврат;
КонецПопытки;
// Вычисление количества строк и колонок в зависимости от версии Excel
version_Ex = Лев ( Excel_App . Version , Найти ( Excel_App . Version , "." )- 1 );
Если version_Ex = "8" тогда
Колич_Строк = Excel_App . Cells . CurrentRegion . Rows . Count ;
Колич_Колонок = Макс ( Excel_App . Cells . CurrentRegion . Columns . Count , 13 );
Иначе
Колич_Строк = Excel_App . Cells ( 1 , 1 ). SpecialCells ( 11 ). Row ;
Колич_Колонок = Excel_App . Cells ( 1 , 1 ). SpecialCells ( 11 ). Column ;
Конецесли;
// Имена колонок в файле должны совпадать с именами реквизитов табличной части, в которую загружаются данные
// Переменная ТЗ_Колонки содержит список номеров колонок, которые будут перегружаться
ТЗ_Колонки = Новый ТаблицаЗначений ;
ТЗ_Колонки . Колонки . Добавить ( "НомерКолонки" );
ТЗ_Колонки . Колонки . Добавить ( "НазваниеКолонки" );
Для Каждая_Колонка = 1 по Колич_Колонок Цикл
ИмяКолонки = Excel_App . Cells ( 1 , Каждая_Колонка ). Text ;
ИмяБезПробелов = СтрЗаменить ( ИмяКолонки , " " , "" ); // Удаление лишних пробелов из имен колонок
// Проверка наличия реквизитов табличной части "Материалы" в документе "ПоступлениеМатериалов"
Если НЕ ПроверкаРеквизитаТЧ ( ИмяБезПробелов , Метаданные . Документы . ПоступлениеМатериалов , "Материалы" ) Тогда
Сообщить ( "Не найден реквизит с именем " + ИмяБезПробелов + "! Колонка не будет загружена!" );
Иначе
Новая_Строка = ТЗ_Колонки . Добавить ();
Новая_Строка . НомерКолонки = Каждая_Колонка ;
Новая_Строка . НазваниеКолонки = ИмяБезПробелов ;
КонецЕсли;
// Если есть колонки для загрузки и есть колонка "Материалы" (обязательная к заполнению)
Если ТЗ_Колонки . Количество () <> 0 и
ТЗ_Колонки . НайтиСтроки (Новый Структура ( "НазваниеКолонки" , "Материалы" )). Количество () <> 0 Тогда
// Создание документа и заполнение реквизитов шапки
Тек_Документ = Документы . ПоступлениеМатериалов . СоздатьДокумент ();
Тек_Документ . Комментарий = "Загружено из файла " + Объект . Файл ;
Тек_Документ . Дата = ТекущаяДата ();
Тек_Документ . Ответственный = ПараметрыСеанса . ТекущийПользователь ;
Для Тек_Строка = 1 по Колич_Строк Цикл // Заполнение табличной части "Материалы"
Строка_Док = Тек_Документ . Материалы . Добавить ();
Строка_Док . Валюта = Тек_Документ . ТипЦен . ВалютаЦены ;
Для каждого Тек_ТЗ из ТЗ_Колонки Цикл
Тек_Значение = Excel_App . Cells ( Тек_Строка , Тек_ТЗ . НомерКолонки ). Text ;
// Получение имени колонки
ИмяКолонкиДокумента = Excel_App . Cells ( 1 , Тек_ТЗ . НомерКолонки ). Text ;
// Заполнение строки данными
Если ИмяКолонкиДокумента = "Материалы" Тогда
Строка_Док . Номенклатура = Справочники . Материалы . НайтиПоНаименованию ( Тек_Значение , Истина);
ИначеЕсли ИмяКолонкиДокумента = "Цена" Тогда
Строка_Док . Цена = Тек_Значение ;
ИначеЕсли ИмяКолонкиДокумента = "Ставка_НДС" Тогда
Строка_Док . Ставка_НДС = Тек_Значение ;
КонецЕсли;
КонецЦикла;
Тек_Документ . Записать ( РежимЗаписиДокумента . Проведение ); // Запись и проведение документа
Сообщить ( "Записан документ " + СокрЛП ( Тек_Документ ));
Иначе
Сообщить ( "В файле " + СокрЛП ( Объект . Файл )+ " не достаточно данных для заполнения документа!" );
КонецЕсли;
Excel_App . DisplayAlerts = 0 ;
Excel_App . Quit ();
Excel_App . DisplayAlerts = 1 ;
&НаСервере
Функция ПроверкаРеквизитаТЧ ( ИмяРекв , МетаданныеДок , ИмяТЧ )
// Проверка наличия ТЧ
ТаблЧасть = МетаданныеДок . ТабличныеЧасти . Найти ( ИмяТЧ );
Если ТаблЧасть = Неопределено Тогда // Нет такой таб. части в документе
Возврат Ложь; //реквизит не найден
Иначе
Возврат НЕ ( ТаблЧасть . Реквизиты . Найти ( ИмяРекв ) = Неопределено); //реквизит найден
КонецЕсли;
&НаСервере
Процедура ВыгрузитьВXLS ( Выб_Таблица )
Если Выб_Таблица . Количество () = 0 Тогда
Сообщить ( "Пустая таблица! Операция прервана!" );
Возврат;
КонецЕсли;
Попытка
Excel_App = Новый COMОбъект ( "Excel.Application" ); // Подключение к Excel
Исключение
Сообщить ( "Произошла ошибка при открытии файла " + СокрЛП ( ОписаниеОшибки ())+ "! Операция прервана!" );
Возврат;
КонецПопытки;
Попытка
Book_Excel = Excel_App . WorkBooks . Add ();
Sheet_Excel = Book_Excel . WorkSheets ( 1 );
Sheet_Excel . Name = "Test Sheet" ; // Присваиваем имя первому листу
Excel_App . ActiveWindow . View = 2 ; // Режим страничного просмотра
Excel_App . ActiveWindow . Zoom = 100 ; // Масштаб
Sheet_Excel . PageSetup . Orientation = 2 ; // Альбомная ориентация
Sheet_Excel . Columns ( 1 ). ColumnWidth = 20 ; // Ширина первой колонки
Sheet_Excel . Columns ( 2 ). ColumnWidth = 40 ; // Ширина второй колонки
Sheet_Excel . Columns ( 10 ). ColumnWidth = 15 ;
Sheet_Excel . Columns ( 11 ). ColumnWidth = 15 ;
Sheet_Excel . Cells ( 1 , 1 ). Value = "№ ПП" ; //Создаем шапку 1
Sheet_Excel . Cells ( 1 , 2 ). Value = "Текст" ;
Sheet_Excel . Cells ( 1 , 3 ). Value = "Числа" ;
Sheet_Excel . Cells ( 1 , 10 ). Value = "Дата" ;
Sheet_Excel . Cells ( 1 , 11 ). Value = "Формула" ;
Sheet_Excel . Cells ( 2 , 3 ). Value = "Число 1" ; //Создаем шапку 2
Sheet_Excel . Cells ( 2 , 4 ). Value = "Число 2" ;
Sheet_Excel . Cells ( 2 , 5 ). Value = "Число 3" ;
Sheet_Excel . Cells ( 2 , 6 ). Value = "Число 4" ;
Sheet_Excel . Cells ( 2 , 7 ). Value = "Число 5" ;
Sheet_Excel . Cells ( 2 , 8 ). Value = "Число 6" ;
Sheet_Excel . Cells ( 2 , 9 ). Value = "Число 7" ;
Sheet_Excel . Range ( "A1:A2" ). MergeCells = Истина; Sheet_Excel . Range ( "A1:A2" ). WrapText = Истина;
Sheet_Excel . Range ( "B1:B2" ). MergeCells = Истина; Sheet_Excel . Range ( "B1:B2" ). WrapText = Истина;
Sheet_Excel . Range ( "J1:J2" ). MergeCells = Истина; Sheet_Excel . Range ( "J1:J2" ). WrapText = Истина;
Sheet_Excel . Range ( "K1:K2" ). MergeCells = Истина; Sheet_Excel . Range ( "K1:K2" ). WrapText = Истина;
Sheet_Excel . Range ( "C1:I1" ). MergeCells = Истина; Sheet_Excel . Range ( "C1:I1" ). WrapText = Истина;
Sheet_Excel . Range ( "A1:K2" ). Borders . Linestyle = 1 ; //Линия границы
Sheet_Excel . Range ( "A1:K2" ). HorizontalAlignment = 3 ; //Выравнивание по горизонтали
Sheet_Excel . Range ( "A1:K2" ). VerticalAlignment = 2 ; //Выравнивание по вертикали
Sheet_Excel . Range ( "A1:K2" ). Font . Bold = 1 ; //Установим жирный шрифт в шапке
// Выгружаем данные в таблицу
Количество_Строк = 3 ; //Заполнение ТЧ начинаем с третьей строки
Для Каждого ТекСтрока Из Выб_Таблица Цикл
Sheet_Excel . Cells ( Количество_Строк , 1 ). Value = ТекСтрока . НомерПоПорядку ;
Sheet_Excel . Cells ( Количество_Строк , 2 ). Value = ТекСтрока . Табл_Текст ;
Sheet_Excel . Cells ( Количество_Строк , 3 ). Value = ТекСтрока . Табл_Число1 ;
Sheet_Excel . Cells ( Количество_Строк , 4 ). Value = ТекСтрока . Табл_Число2 ;
Sheet_Excel . Cells ( Количество_Строк , 5 ). Value = ТекСтрока . Табл_Число3 ;
Sheet_Excel . Cells ( Количество_Строк , 6 ). Value = ТекСтрока . Табл_Число4 ;
Sheet_Excel . Cells ( Количество_Строк , 7 ). Value = ТекСтрока . Табл_Число5 ;
Sheet_Excel . Cells ( Количество_Строк , 8 ). Value = ТекСтрока . Табл_Число6 ;
Sheet_Excel . Cells ( Количество_Строк , 9 ). Value = ТекСтрока . Табл_Число7 ;
Sheet_Excel . Cells ( Количество_Строк , 10 ). Value = ТекСтрока . Табл_Дата ;
Sheet_Excel . Cells ( Количество_Строк , 11 ). Formula = "=F" + Строка ( Количество_Строк )
+ "+G" + Строка ( Количество_Строк );
Количество_Строк = Количество_Строк + 1 ;
КонецЦикла;
Количество_Строк = Количество_Строк - 1 ; //Последняя строка для форматирования
Sheet_Excel . Range ( "A3:K" + Строка ( Количество_Строк )). Borders . Linestyle = 1 ; //Линия границы
Sheet_Excel . Range ( "A3:K" + Строка ( Количество_Строк )). VerticalAlignment = 2 ; //Выравнивание по вертикали
Для НомерСтроки = 3 По Количество_Строк Цикл // Установка числового формата
Для Столбец = 4 По 9 Цикл
Sheet_Excel . Cells ( НомерСтроки , Столбец ). NumberFormat = "0.00" ;
КонецЦикла;
Sheet_Excel . Cells ( НомерСтроки , 11 ). NumberFormat = "0.00" ;
КонецЦикла;
Исключение
Excel_App . Quit ();
Сообщить ( ОписаниеОшибки ());
Возврат;
КонецПопытки;
Попытка
Book_Excel . SaveAs ( Объект . Файл );
Сообщить ( "Файл " + Объект . Файл + " успешно сохранен" );
Исключение
Сообщить ( ОписаниеОшибки () + " Файл не сохранен!" );
Возврат;
КонецПопытки;
Попытка
Excel_App . Quit ();
Исключение
Сообщить ( ОписаниеОшибки ());
Возврат;
КонецПопытки;
Если вы часто пользуетесь Microsoft Excel, вы должны использовать в нем функцию «Сохранить как», которая позволяет сохранять открытую в настоящий момент книгу с другим именем или другим форматом (Excel Macro-enabled, CSV, PDF и т. Д.). Вы также можете сохранить файл в другой папке, используя этот метод. Однако возможно ли использовать ту же функцию под VBA? Ответ абсолютный Да! У нас также есть функция «Сохранить как» в VBA, которая помогает нам выполнять все вышеупомянутые задачи наряду с некоторыми дополнительными преимуществами (очевидно, автоматизация - одно из преимуществ). В этой статье мы рассмотрим различные примеры функции VBA SAVE AS.
Формула для функции Сохранить как в Excel VBA
Давайте посмотрим ниже формулу для функции Сохранить как в VBA.
- FileName - имя книги, которую нужно сохранить.
- FileFormat - формат файла, в котором файл должен быть сохранен (напр. Pdf, CSV и т. Д.)
- Пароль - пароль для защиты рабочей книги (рабочая книга не может быть доступна без пароля)
- WriteResPassword - Напишите пароль бронирования для книги.
- ReadOnlyRecommended - распознает, сохранена ли книга в формате только для чтения или нет.
- CreateBackup - определяет, создан ли файл резервной копии для книги.
- AccessMode - распознает режим доступа к книге .
- ConflictResolution - распознает конфликты, возникающие, когда рабочая книга является общей и используется более чем одним пользователем.
- AddToMru - проверяет, добавлена ли рабочая книга в недавно использованный файл или нет.
- Локальный - Проверяет, сохранена ли рабочая книга с законами Excel (местный язык) или с законами VBA (США - английский).
Тише! Много аргументов, верно? Но что, если я скажу вам, все эти аргументы являются необязательными и могут быть пропущены при использовании функции VBA SAVE AS. Однако верно то, что именно эти аргументы делают VBA SaveAs более гибкой в использовании функцией. «Выражение» в начале синтаксиса - не что иное, как выражение, против которого можно использовать эту функцию. Like Workbook - это выражение, с которым можно использовать SaveAs.
Примеры сохранения файла Excel с помощью функции VBA Save As
Ниже приведены различные примеры сохранения файла Excel с использованием функции VBA Save As.
Вы можете скачать этот шаблон VBA Сохранить как Excel здесь - VBA Сохранить как шаблон Excel
Пример № 1 - Как сохранить копию рабочей книги с другим именем?
Давайте посмотрим, как мы можем сохранить текущую книгу под другим именем.
Чтобы использовать функцию «Сохранить как» в Excel VBA, выполните следующие действия:
Шаг 1. Добавьте новый модуль в редактор Visual Basic (VBE). Перейдите на Вставить и затем выберите Модуль.
Шаг 2: Определите новую подпроцедуру, которая может хранить макрос.
Код:
Шаг 3: Определите новую переменную, которая может содержать имя, под которым будет сохранен файл.
Код:
Шаг 4: Теперь используйте оператор присваивания, чтобы присвоить имя этой переменной, используя который текущий файл может быть сохранен как.
Код:
Шаг 5: Теперь используйте функцию SaveAs с аргументом FileName, чтобы сохранить файл с именем «Example1».
Код:
Шаг 6: Вот и все, теперь запустите этот код, нажав F5 или вручную, используя кнопку Run, и посмотрите вывод.
Вы можете видеть, что файл с именем « Пример1 » сохраняется в Документах .
Если бы вы могли записать, файл сохраняется как Macro-Enabled File, потому что исходный файл, на котором я использовал функцию SaveAs, это файл с Macro-Enabled. Это означает, что эта функция в VBA автоматически проверяет формат файла предыдущего файла и сохраняет его в том же формате. Также по умолчанию файл будет сохранен в Документах на этом ПК . Это местоположение по умолчанию может быть предоставлено явно во время определения имени листа.
Пример №2 - Сохранение книги с предоставленным пользователем именем
Вместо первоначального определения имени, можно ли написать код, который позволяет пользователю сохранять рабочий лист под именем по своему выбору, так же как функция Excel Save As?
Выполните следующие шаги, чтобы использовать функцию «Сохранить как» в Excel VBA.
Шаг 1: Определите новую подпроцедуру в недавно вставленном модуле, который может хранить макрос.
Код:
Шаг 2: Определите новую переменную, которая может содержать значение пользовательского имени.
Код:
Причина, по которой эта переменная определяется как Variant, заключается в том, что этот тип данных делает соглашения об именах универсальными. Например, пользователь может добавить некоторый дополнительный специальный символ (который разрешен в соглашениях об именах) или может также добавить даты под именем файла.
Шаг 3: Теперь с помощью оператора присваивания и комбинации функций, называемой application.GetSaveAsFilename, создайте оператор, который позволит системе принять определенное пользователем имя. Посмотрите, как это было достигнуто на скриншоте ниже.
Код:
Шаг 4: Используйте условный IF, чтобы убедиться, что имя, которое вводит пользователь, является действительным согласно соглашениям об именах.
Код:
Это условие проверяет, соответствует ли имя, данное пользователем для сохранения рабочего листа, правилам именования, установленным для именования файла, или нет.
Шаг 5: Запишите утверждение, которое оценивается для данного условия IF.
Код:
Этот фрагмент кода оценивается, когда условие IF выполнено. Если это так, активная рабочая книга будет сохранена под именем, определенным в переменной Spreadsheet_Name (которая будет определяться пользователем)
Шаг 6: Завершите цикл IF и запустите этот код, чтобы увидеть результат.
Код:
Шаг 7: Как только вы запустите этот код, вы получите диалоговое окно Сохранить как, которое позволит вам ввести имя по вашему выбору и сохранить файл.
Пример № 3 - Как сохранить файл в формате PDF с помощью функции Excel VBA SaveAs?
Предположим, у вас есть данные, указанные ниже в вашей таблице Excel, и вам нужно преобразовать их в PDF.
Выполните следующие шаги, чтобы преобразовать этот файл в PDF с помощью функции VBA Сохранить как:
Шаг 1: Определите новую подпроцедуру для хранения макроса.
Код:
Шаг 2. Теперь используйте следующий код, чтобы сохранить этот файл в формате PDF.
Код:
Шаг 3: Запустите этот код, и вы увидите файл PDF, созданный в разделе «Этот ПК»> «Документы».
В этом коде ActiveSheet.SaveAs позволяет сохранить файл с тем же именем. Поскольку мы добавили расширение как .pdf в конец файла, оно экспортируется в файл PDF. Вы можете увидеть изображение выше для вашей справки.
То, что нужно запомнить
- По умолчанию местом сохранения файла, используемого в VBA SaveAs, будет Этот ПК> Документы. Тем не менее, вы можете указать каталог вручную во время определения имени файла.
- По умолчанию файл, сохраненный с помощью VBA SaveAs, будет сохранен в том же формате, что и исходный файл. Тем не менее, он также может быть определен в соответствии с требованиями пользователя во время определения переменной.
Рекомендуемые статьи
Это руководство к VBA Сохранить как. Здесь мы обсудим, как сохранить файл с помощью функции Excel VBA Save As вместе с примером и загружаемым шаблоном Excel. Ниже приведены несколько полезных статей о Excel, связанных с VBA.
Читайте также: