Надіслати книгу Excel електронною поштою - Поради Excel

Зміст

Дякуємо Кетрін, яка надіслала запитання щодо підказки Excel цього тижня:

Я хочу розмістити кнопку форми на аркуші Excel, який при натисканні надсилатиме той самий аркуш Excel комусь електронною поштою.

Щоб надіслати цілу книгу на [email protected] з певним рядком теми, ви використовуєте цей макрос Excel.

Sub SendIt() Application.Dialogs(xlDialogSendMail).Show arg1:="[email protected]", _ arg2:="This goes in the subject line" End Sub

Існує піктограма на панелі інструментів, яка дозволяє додавати командну кнопку. Виконайте такі дії, щоб додати його на існуючу панель інструментів:

  • Перегляд> Панелі інструментів> Налаштувати
  • Клацніть на вкладку команд
  • У полі Категорія прокрутіть вниз до Панелі інструментів керування
  • У вікні команд прокрутіть вниз до кнопки команди
  • Клацніть на командну кнопку, перетягніть її вгору та опустіть на існуючу панель інструментів
  • Закрийте діалогове вікно Налаштування, натиснувши кнопку Закрити

Тепер, коли у вас є піктограма командної кнопки: Клацніть піктограму. Перетягніть аркуш, щоб створити кнопку. Зробіть її якомога більшою чи меншою. Excel попросить вас призначити кнопці макрос. Виберіть SendIt. Клацніть і перетягніть, щоб виділити слово Кнопка 1 на кнопці. Введіть щось на зразок "Надіслати цей файл електронною поштою". Клацніть поза кнопкою, і ви готові до роботи. Якщо вам коли-небудь потрібно буде перепризначити макрос, прикріплений до цієї кнопки, клацніть правою кнопкою миші та виберіть призначити макрос.

Що робити, якщо у вас є великий перелік інформації, яку ви хочете поширити серед кількох користувачів, але ви хочете, щоб кожен користувач бачив свою власну інформацію? Нижче наведено трохи більш складний макрос, який це зробить. Праворуч - зразковий перелік продажів для трьох регіонів.

Перш ніж писати макрос, налаштуйте книгу таким чином:

  • Скопіюйте аркуш даних, клацнувши правою кнопкою миші вкладку даних, виберіть «перемістити або скопіювати», поставте прапорець «створити копію», OK. Перейменуйте цей новий аркуш у "Звіт". Ви можете перейменувати аркуш, клацнувши правою кнопкою миші на вкладці, вибравши "перейменувати", а потім набравши "Звіт".
  • На вкладці звіту видаліть усі рядки даних. Зберігайте лише заголовки та заголовки.
  • Вставте новий аркуш із цими стовпцями: Регіон, Одержувач. На цьому аркуші введіть назву кожного регіону та користувача, який повинен отримати звіт. Перейменуйте цей аркуш у "Розповсюдження".

Ось макрос. Рядки, які починаються з апострофів (') - це коментарі, створені для того, щоб допомогти вам стежити за потоком.

Public Sub SendItAll() ' Clear out any old data on Report Sheets("Report").Select Range("A1").CurrentRegion.ClearContents ' Sort data by region Sheets("Data").Select Range("A1").CurrentRegion.Select Selection.Sort Key1:=Range("A2"), Header:=xlYes ' Process each record on Distribution Sheets("Distribution").Select FinalRow = Range("A15000").End(xlUp).Row For i = 2 To FinalRow Sheets("Distribution").Select RegionToGet = Range("A" & i).Value Recipient = Range("B" & i).Value ' Clear out any old data on Report Sheets("Report").Select Range("A1").CurrentRegion.ClearContents ' Get records from Data Sheets("Data").Select Range("A1").CurrentRegion.Select ' Turn on AutoFilter, if it is not on If ActiveSheet.AutoFilterMode = False Then Selection.AutoFilter ' Filter the data to just this region Selection.AutoFilter Field:=1, Criteria1:=RegionToGet ' Select only the visible cells and copy to Report Selection.SpecialCells(xlCellTypeVisible).Select Selection.Copy Destination:=Sheets("Report").Range("A1") ' Turn off the Autofilter Selection.AutoFilter ' Copy the Report sheet to a new book and e-mail Sheets("Report").Copy Application.Dialogs(xlDialogSendMail).Show _ arg1:=Recipient, _ arg2:="Report for " & RegionToGet ActiveWorkbook.Close SaveChanges:=False Next i End Sub

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