В первой строке запускаем новый Excel, затем делаем его невидимым, в 3-й строке открываем файл fname. В последней строке получаем первый лист открытого excel-кого файла.
Итак, данные у нас есть, теперь необходимо написать процедуру на VBA (макрос), которая брала бы значение из конкретной ячейки, в данном случае это будет ячейка B14, и присваивала бы это значение имени файла.
Ниже представлен код процедуры, я его подробно прокомментировал. Единственное скажу, что я во всех примерах сохраняю новые файлы без макросов (расширение .xlsx), т.е. по факту будет один файл с поддержкой макросов, а все производные — без.
Открываем в Excel редактор Visual Basic, и вставляем код следующей процедуры в исходный код этой книги (ЭтаКнига, открыть двойным кликом) или в модуль, который Вы предварительно должны создать.
Примечание! Для того чтобы открыть редактор Visual Basic в Excel, необходимо перейти на вкладку «Разработчик» и нажать на кнопку «Visual Basic». Файл Excel с кодом процедуры необходимо сохранить с типом «Книга Excel с поддержкой макросов».
После сохранения файла запустите макрос («Макросы -> Выполнить -> SaveFile»).
В результате в моем случае процедура успешно выполнилась, файл сохранился с названием «Марка Авто 1», данное значение взято из ячейки B14, о чем будет свидетельствовать сообщение в конце процедуры. Файл сохранен в каталоге, где и исходный файл (во всех примерах ниже прописано то же самое, т.е. сохранение рядом с исходником, но это Вы можете изменить).
Добавление кнопки в Excel для запуска макроса
Каждый раз открывать окно с макросами и выбирать нужный макрос не очень удобно, поэтому можно легко добавить кнопку где-нибудь рядом с данными и просто нажимать ее. Это делается следующим образом «Вкладка Разработчик -> Вставить -> Кнопка (элемент управления формы)».
Затем выберите место, где вставить кнопку, и нажмите туда. После этого появится окно назначения действия, т.е. нужно выбрать, какой макрос запускать при нажатии этой кнопки, выбираем наш макрос, т.е. SaveFile, и нажимаем «ОК».
В итоге появится кнопка с названием «Кнопка», это название лучше изменить, например, на «Сохранить файл». Для этого нажмите правой кнопкой мыши на кнопку и выберите настройки «Изменить текст». В итоге у Вас должно получиться что-то вроде этого.
Создание собственных диалоговых окон средствами VBA
Workbooks(имя).Close true Или200?’200px’:”+(this.scrollHeight+5)+’px’);”>’ подавляет предупреждения Excel ответы. Ведь ясно изменения в файле?” с следующий раз-Ципихович Эндрю выполнается и есть приходится угадывать объект Microsoft Excel
7 ответов
Как мы можем получить предложенный путь, который дает Excel при использовании Save as документа, созданного из шаблона на SharePoint? Документ не сохранен, поэтому у него еще нет пути. Хотя, когда мы используем Save As, в окне сохранения предлагается правильная библиотека документов. Нам нужно это.
Я новичок в Excel VBA . Я пытаюсь скопировать диапазон данных из выходных данных рабочего листа в новую книгу excel и сохранить новую книгу со значением в E3. В качестве бонуса я хотел бы также иметь возможность скопировать данные в wordpad и сохранить как E3.xml Вот VBA , который у меня есть до.
Скорее всего, путь, к которому вы пытаетесь получить доступ, не существует. Похоже, вы пытаетесь сохранить в относительном расположении, и у вас нет расширения файла в этой строке. Если вам нужно использовать относительные пути, вы можете проанализировать путь из ActiveWorkbook.FullName
Самый простой способ использовать эту функцию-начать с «Записи макроса». Как только вы начнете запись, сохраните файл в нужном месте с нужным именем, а затем, конечно, установите тип файла, скорее всего, «Excel Macro Enabled Workbook» ~ ‘XLSM’
Остановите запись, и вы сможете начать проверку своего кода.
Я написал код ниже, который позволяет сохранить книгу, используя путь, по которому изначально был расположен файл, назвав его «Событие [дата в ячейке «A1″]»
Скопируйте код в новый модуль, а затем запишите дату в ячейку «A1», например 01-01-2016 -> назначьте суб кнопке и запустите. [Примечание] вам необходимо создать файл сохранения, прежде чем этот сценарий будет работать, потому что новая книга сохраняется в папке автосохранения по умолчанию!
Возможно, ваш формат по умолчанию не соответствует расширению файла. Вы должны указать формат файла вместе с именем файла, убедившись, что формат соответствует расширению:
xlWorkbookDefault также указан со значением 51, что озадачивает меня, так как я думал, что формат по умолчанию может быть изменен.
Я знаю, что это старый пост, но я искал что-то похожее. Я думаю, что ваша проблема заключалась в том, что при использовании Now() вывод будет «6/20/2014″. Это проблема с именем файла, так как в нем есть»/». Как вы, возможно, знаете, вы не можете использовать определенные символы в имени файла.
У меня есть сценарий VBA, так что если ячейка пуста, то Excel запросит файл для сохранения. Это гарантирует, что шаблон не будет изменен. Однако когда пользователь нажимает кнопку Сохранить в диалоговом окне Save As, файл не сохраняется. Это код, который я использую: If.
Из файла Personal.xlsb я хочу, чтобы VBA сохранил текущую активную книгу в качестве определяемого пользователем имени в том же каталоге и удалил исходную книгу. Ниже приведен мой код. У него есть две проблемы. Во-первых, он по какой-то причине сохраняет книгу в папке Мои Документы. Активной.
Но снова придумайте точно такую же ошибку. Только в последней строке появляется ошибка
Я боролся, но нижеследующее наконец сработало на меня!
Удалить файл VBA.
И один сценарий — это когда мы обычно получаем электронное письмо. Мы сохраняем вложения для нашей обычной работы или просто хотим просмотреть отчет за этот момент времени, а позже нам может понадобиться удалить эти файлы.