Makro för att lägga till daglig rapport - Excel-tips

Judith publicerade veckans Excel-fråga.

Jag måste importera en fil dagligen. Jag vill lägga till filen varje dag i en befintlig Excel-arbetsbok och få kalkylbladet namnet d / m / y.

Ett kort visuellt grundmakro gör detta till en enkel uppgift. Ett problem - fliknamnet på ett ark kan inte innehålla ett snedstreck. Så lösningen kommer att byta namn på varje dags ark så att det har ett namn som "3 oktober 1999".

Lösningen innebär att du lägger till ett toppkalkylblad i din befintliga bok. Det här bladet, som kallas "Meny", ger ett enkelt användargränssnitt så att du kan lämna uppgiften till en annan anställd vid behov. Det översta arket innehåller celler där användaren kan ange sökväg och filnamn på filen som ska importeras. Om du importerar en fil som skapats av ett annat system ändras inte dessa fält från dag till dag. Menybladet innehåller också en cell med det aktuella datumet formaterat utan snedstreck. Jag kommer att inkludera ett automatiskt öppet makro som automatiskt fyller i den här cellen för användaren, men de kan alltid ändra det innan du klickar på knappen för att importera filen. Slutligen har menybladet en stor knapp som användaren kommer att klicka på.Den här knappen anropar makrot för att importera filen som heter på menyn till den aktuella boken med det angivna fliknamnet.

Meny Arbetsblad

Öppna en ny arbetsbok med bara ett ark. Dubbelklicka på arkfliken och skriv ett namn på arket som heter "Meny". Lägg till en fin titel i cell A1. I Cells C3: C5, lägg till texten som visas till vänster. I Cell D3 anger du sökvägen för katalogen där filen finns varje dag. Lägg till namnet på filen i cell D4. Lämna D5 tom. Det är lättare att ställa in knappen när makrot har skapats, så vi lämnar det för senare.

  • Starta Macro Editor med alt = "" + F11
  • Välj Infoga - Modul
  • Kopiera följande text till makroeditorn
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

Gå nu tillbaka till Excel och lägg till en knapp i menybladet.

Hur man lägger till en knapp i ett kalkylblad

Lägg till-knapp
  • Visa formulärverktygsfältet genom att välja Visa - verktygsfält - formulär
  • Välj knappverktyget i verktygsfältet
  • Håll ner alt = "" -tangenten, dra från det övre hörnet av B8 till cell C9
  • I dialogrutan Tilldela makro väljer du vårt makro som heter GetFile och klickar på OK
  • Medan knappen fortfarande är markerad kan du klicka och dra för att markera texten på knappen. Ersätt denna text med "Process!" eller vilken text du själv väljer

Du har nu den fullständiga ansökan. Spara filen på ett bekvämt ställe. När du har ställt in din fil med rätt information i cellerna D3: D4 kommer den dagliga proceduren att vara följande:

  • Öppna filen vi just skapade
  • Kontrollera att datumet som visas i cell D5 är lämpligt.
  • Klicka på den stora knappen.
  • Spara filen

Här är några sätt att ändra makro:

  • Om du vill att fliken ska namnges med föregående dags datum, lägg till "-1" efter "NU ()" i makrot.
  • Om filen som ska importeras har flera ark och målarket kanske inte finns överst, lägg sedan till ark ("arknamn"). Välj efter filen. Öppna raden ovan.

Intressanta artiklar...