Макрос для додавання щоденного звіту - Поради Excel

Джудіт розмістила запитання Excel на цьому тижні.

Мені потрібно імпортувати файл щодня. Я хотів би щодня додавати файл до існуючої книги Excel і мати аркуш із іменем d / m / y.

Короткий візуальний базовий макрос зробить це простим завданням. Одна проблема - назва вкладки аркуша не може містити скісну риску. Отже, рішення буде перейменовувати аркуш кожного дня, щоб мати таку назву, як "03 жовтня 1999 р.".

Рішення передбачає додавання верхнього аркуша до вашої існуючої книги. Цей аркуш, який називається "Меню", надає простий користувальницький інтерфейс, за допомогою якого ви можете передати це завдання іншому співробітнику, якщо це необхідно. Верхній аркуш містить комірки, де користувач може вказати ім’я шляху та ім’я файлу, який потрібно імпортувати. Якщо ви імпортуєте файл, створений іншою системою, ці поля не змінюватимуться щодня. Аркуш меню також містить комірку з поточною датою, відформатовану без косих рисок. Я включу автоматично відкритий макрос, який автоматично заповнить цю клітинку для користувача, але вони завжди можуть змінити його перед натисканням кнопки для імпорту файлу. Нарешті, на аркуші меню є велика кнопка, яку користувач натисне.Ця кнопка викликає макрос для імпортування файлу з іменем у меню до поточної книги із зазначеним іменем вкладки.

Меню Робочий аркуш

Відкрийте нову книгу лише одним аркушем. Двічі клацніть вкладку аркуша та введіть назву листа, яка називається "Меню". Додайте гарний заголовок у клітинку A1. У клітинки C3: C5 додайте текст, як показано зліва. У комірку D3 введіть назву шляху до каталогу, де файл знаходиться щодня. У комірку D4 додайте ім’я файлу. Залиште D5 порожнім. Налаштувати кнопку простіше після створення макросу, тому ми залишимо це на потім.

  • Запустіть редактор макросів за допомогою alt = "" + F11
  • Виберіть Вставити - Модуль
  • Скопіюйте наступний текст у редактор макросів
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, і натисніть кнопку OK
  • Поки кнопку все ще вибрано, ви можете натиснути та перетягнути, щоб виділити текст на кнопці. Замініть цей текст на "Процес!" або будь-який текст на ваш вибір

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

  • Відкрийте щойно створений файл
  • Переконайтеся, що дата, вказана в комірці D5, відповідна.
  • Клацніть велику кнопку.
  • Збережіть файл

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

  • Якщо ви хочете, щоб вкладка мала назву із датою попереднього дня, додайте "-1" після "NOW ()" у макрос.
  • Якщо у файлі, який потрібно імпортувати, є кілька аркушів, а цільовий аркуш може бути не зверху, додайте Аркуші ("ім'я аркуша"). Виберіть після рядка Файл. Відкрити вище.

Цікаві статті...