Ηλεκτρονικό βιβλίο εργασίας Excel - Συμβουλές για το Excel

Πίνακας περιεχομένων

Χάρη στην Katherine που έστειλε την ερώτηση για την άκρη του Excel αυτής της εβδομάδας:

Θέλω να τοποθετήσω ένα κουμπί φόρμας σε ένα φύλλο εργασίας του Excel το οποίο, όταν κάνετε κλικ, θα στείλει μέσω email το ίδιο φύλλο εργασίας σε κάποιον.

Για να στείλετε ολόκληρο το βιβλίο στο [email protected] με μια συγκεκριμένη γραμμή θέματος, θα χρησιμοποιούσατε αυτήν τη μακροεντολή Excel.

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

Υπάρχει ένα εικονίδιο γραμμής εργαλείων που σας επιτρέπει να προσθέσετε ένα κουμπί εντολής. Ακολουθήστε αυτά τα βήματα για να το προσθέσετε σε μια υπάρχουσα γραμμή εργαλείων:

  • Προβολή> Γραμμές εργαλείων> Προσαρμογή
  • Κάντε κλικ στην καρτέλα εντολών
  • Στο πλαίσιο Κατηγορία, μετακινηθείτε προς τα κάτω στο Control Toolbox
  • Στο πλαίσιο εντολών, μετακινηθείτε προς τα κάτω στο κουμπί εντολών
  • Κάντε κλικ στο κουμπί εντολής και σύρετέ το προς τα πάνω και ρίξτε το σε μια υπάρχουσα γραμμή εργαλείων
  • Παράβλεψη του διαλόγου Προσαρμογή πατώντας Κλείσιμο

Τώρα που έχετε το εικονίδιο κουμπιού εντολής: Κάντε κλικ στο εικονίδιο. Σύρετε το φύλλο εργασίας σας για να δημιουργήσετε το κουμπί. Κάντε το τόσο μεγάλο ή μικρό όσο θέλετε. Το Excel θα σας ζητήσει να αντιστοιχίσετε μια μακροεντολή στο κουμπί. Επιλέξτε SendIt. Κάντε κλικ και σύρετε για να επισημάνετε τη λέξη Κουμπί 1 στο κουμπί. Πληκτρολογήστε κάτι σαν "E-mail αυτό το αρχείο". Κάντε κλικ έξω από το κουμπί και είστε έτοιμοι να ξεκινήσετε. Εάν χρειαστεί να εκχωρήσετε ξανά τη μακροεντολή που επισυνάπτεται σε αυτό το κουμπί, κάντε δεξί κλικ στο κουμπί και επιλέξτε αντιστοίχιση μακροεντολής

Τι γίνεται αν έχετε μια μεγάλη λίστα πληροφοριών που θέλετε να διανείμετε σε έναν αριθμό χρηστών, αλλά θέλετε μόνο κάθε χρήστης να βλέπει τις δικές του πληροφορίες; Παρακάτω είναι μια ελαφρώς πιο περίπλοκη μακροεντολή που θα το κάνει αυτό. Στα δεξιά υπάρχει μια λίστα δειγμάτων πωλήσεων για τρεις περιοχές.

Πριν γράψετε τη μακροεντολή, ρυθμίστε το βιβλίο εργασίας ως εξής:

  • Αντιγράψτε το φύλλο εργασίας δεδομένων κάνοντας δεξί κλικ στην καρτέλα δεδομένων, επιλέξτε "μετακίνηση ή αντιγραφή", επιλέξτε "δημιουργία αντιγράφου", ΟΚ. Μετονομάστε αυτό το νέο φύλλο εργασίας "Αναφορά". Μπορείτε να μετονομάσετε ένα φύλλο κάνοντας δεξί κλικ στην καρτέλα, επιλέγοντας "μετονομασία" και στη συνέχεια πληκτρολογώντας Αναφορά.
  • Στην καρτέλα αναφοράς, διαγράψτε όλες τις σειρές δεδομένων. Διατηρήστε μόνο τις επικεφαλίδες και τους τίτλους.
  • Εισαγάγετε ένα νέο φύλλο εργασίας με αυτές τις στήλες: Περιοχή, Παραλήπτης. Σε αυτό το φύλλο εργασίας, πληκτρολογήστε κάθε όνομα περιοχής και τον χρήστη που πρέπει να λάβει την αναφορά. Μετονομάστε αυτό το φύλλο εργασίας "Διανομή".

Εδώ είναι η μακροεντολή. Οι γραμμές που ξεκινούν με απόστροφα (') είναι σχόλια που έχουν σχεδιαστεί για να σας βοηθήσουν να ακολουθήσετε τη ροή.

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

ενδιαφέροντα άρθρα...