Пошаљите Екцел радну свеску е-поштом - Екцел савети

Преглед садржаја

Хвала Катхерине која је послала питање за овонедељни Екцел савет:

Желим да поставим дугме обрасца на Екцел радни лист који ће, када се кликне, послати исти Екцел радни лист некоме.

Да бисте целу књигу послали на аск@мрекцел.цом са одређеним редом теме, користили бисте овај Екцел макро.

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

Постоји икона на траци са алаткама која вам омогућава да додате командно дугме. Следите ове кораке да бисте га додали на постојећу траку с алаткама:

  • Поглед> Алатне траке> Прилагоди
  • Кликните картицу команде
  • У пољу Категорија померите се надоле до Цонтрол Тоолбок
  • У пољу за наредбе померите се надоле до дугмета Цомманд
  • Кликните командно дугме, превуците га нагоре и испустите на постојећу траку с алаткама
  • Откажите дијалог Прилагоди притиском на Затвори

Сада када имате икону командног дугмета: Кликните икону. Превуците радни лист да бисте креирали дугме. Нека буде онолико велико или мало колико желите. Екцел ће тражити да тастеру доделите макро. Изаберите СендИт. Кликните и превуците да бисте означили реч Дугме 1 на дугмету. Унесите нешто попут „Пошаљите ову датотеку е-поштом“. Кликните изван дугмета и спремни сте за полазак. Ако икада будете морали да доделите макро који је повезан са тим дугметом, кликните десним тастером миша и изаберите доделите макро.

Шта ако имате велику листу информација које желите да дистрибуирате већем броју корисника, али желите да сваки корисник види само своје податке? Испод је мало сложенији макро који ће то урадити. Десно је узорак листе продаје за три региона.

Пре писања макронаредбе, подесите радну свеску на следећи начин:

  • Копирајте радни лист података десним кликом на картицу података, изаберите „премести или копирај“, означи „створи копију“, у реду. Преименујте овај нови радни лист у „Извештај“. Лист можете преименовати десним кликом на картицу, одабиром „преименовати“, а затим откуцавањем извештаја.
  • На картици извештаја избришите све редове података. Задржите само наслове и наслове.
  • Уметните нови радни лист са овим колонама: Регија, Прималац. На овом радном листу унесите име сваког региона и корисника који би требало да прими извештај. Преименујте овај радни лист у „Дистрибуција“.

Ево макронаредбе. Редови који почињу апострофима (') су коментари осмишљени да вам помогну да пратите ток.

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

Занимљиви Чланци...