Макрос для добавления ежедневного отчета - Советы по Excel

Джудит отправила на этой неделе вопрос Excel.

Мне нужно импортировать файл ежедневно. Я хотел бы каждый день добавлять файл в существующую книгу Excel и иметь рабочий лист, названный в честь д / м / у.

Короткий визуальный базовый макрос сделает эту задачу простой. Одна проблема - в названии вкладки листа не может быть косой черты. Таким образом, решение будет переименовывать каждый дневной лист, чтобы он имел имя вроде «03 октября 1999».

Решение включает добавление верхнего листа к существующей книге. Этот лист под названием «Меню» предоставляет простой пользовательский интерфейс, так что вы можете передать эту задачу другому сотруднику, если это необходимо. Верхний лист содержит ячейки, в которых пользователь может указать путь и имя файла для импорта. Если вы импортируете файл, созданный другой системой, эти поля не будут меняться день ото дня. Лист меню также содержит ячейку с текущей датой, отформатированной без косой черты. Я включу автоматически открывающийся макрос, который автоматически заполнит эту ячейку для пользователя, но они всегда могут изменить его, прежде чем нажимать кнопку для импорта файла. Наконец, на листе меню есть большая кнопка, которую пользователь нажимает.Эта кнопка вызывает макрос для импорта файла с именем в меню в текущую книгу с указанным именем вкладки.

Рабочий лист меню

Откройте новую книгу всего на одном листе. Дважды щелкните вкладку листа и введите имя листа под названием «Меню». Добавьте красивый заголовок в ячейку A1. В ячейках C3: C5 добавьте текст, как показано слева. В ячейке D3 введите путь к каталогу, в котором файл находится каждый день. В ячейке D4 добавьте имя файла. Оставьте поле D5 пустым. После создания макроса настроить кнопку проще, поэтому мы оставим это на потом.

  • Запустите редактор макросов с помощью alt = "" + F11
  • Выберите Insert - Module
  • Скопируйте следующий текст в редактор макросов
Sub Auto_Open() ' This macro will put today's date as the default new tab name Sheets("Menu").Select Range("D5").Select Selection.Formula = "=text(now(),""mmm dd yyyy"")" Selection.Copy Selection.PasteSpecial Paste:=xlValues Application.CutCopyMode = False Selection.Columns.AutoFit Range("D8").Value = "" End Sub Sub GetFile() ' This macro will import a file into this workbook ' Copyright 1999 www.MrExcel.com Sheets("Menu").Select PathName = Range("D3").Value Filename = Range("D4").Value TabName = Range("D5").Value ControlFile = ActiveWorkbook.Name Workbooks.Open Filename:=PathName & Filename ActiveSheet.Name = TabName Sheets(TabName).Copy After:=Workbooks(ControlFile).Sheets(1) Windows(Filename).Activate ActiveWorkbook.Close SaveChanges:=False Windows(ControlFile).Activate Sheets("Menu").Select Range("D8").Select ActiveCell.Value = "Completed" Range("D9").Select End Sub

Теперь вернитесь в Excel и добавьте кнопку на лист меню.

Как добавить кнопку на лист

Добавить кнопку
  • Отобразите панель инструментов форм, выбрав Вид - Панели инструментов - Формы
  • Выберите инструмент "Кнопка" на панели инструментов.
  • Удерживая нажатой клавишу alt = "", перетащите из верхнего угла B8 в ячейку C9.
  • В диалоговом окне «Назначить макрос» выберите наш макрос с именем GetFile и нажмите «ОК».
  • Пока кнопка все еще выделена, вы можете щелкнуть и перетащить, чтобы выделить текст на кнопке. Замените этот текст на «Процесс!» или любой текст по вашему выбору

Теперь у вас есть полное приложение. Сохраните файл в удобном месте. После того, как вы настроите файл с правильной информацией в ячейках D3: D4, ежедневная процедура будет следующей:

  • Откройте только что созданный файл
  • Убедитесь, что дата, указанная в ячейке D5, подходит.
  • Нажмите большую кнопку.
  • Сохраните файл

Вот несколько способов изменить макрос:

  • Если вы хотите, чтобы вкладка была названа с датой предыдущего дня, добавьте «-1» после «NOW ()» в макросе.
  • Если импортируемый файл состоит из нескольких листов и целевой лист может не находиться наверху, добавьте листы («имя листа»). Выберите после строки File.Open выше.

Интересные статьи...