Αυτό το σεμινάριο θα καλύψει την αλληλεπίδραση με ονόματα φύλλων στο VBA.
Λήψη ονόματος φύλλου
Τα ονόματα των φύλλων αποθηκεύονται στο Ονομα ιδιοκτησία του Φύλλα ή Φύλλα εργασίας αντικείμενο. Το όνομα φύλλου είναι το όνομα "καρτέλας" που είναι ορατό στο κάτω μέρος του Excel:
Λήψη ονόματος ActiveSheet
Αυτό θα εμφανίσει το όνομα του ActiveSheet σε ένα πλαίσιο μηνυμάτων:
1 | MsgBox ActiveSheet.Name |
Λήψη ονόματος φύλλου ανά αριθμό ευρετηρίου
Αυτό θα εμφανίσει το πρώτο όνομα φύλλου εργασίας σε ένα πλαίσιο μηνυμάτων:
1 | MsgBox Sheets (1). Όνομα |
Αυτό θα εμφανίσει το όνομα του τελευταίου φύλλου εργασίας στο βιβλίο εργασίας:
1 | MsgBox Sheets (Sheets.Count). Όνομα |
Λήψη ονόματος φύλλου με κωδικό όνομα
Στο πρόγραμμα επεξεργασίας VBA, υπάρχει η επιλογή αλλαγής του "κωδικού ονόματος" ενός φύλλου. Το κωδικό όνομα δεν είναι ορατό στον χρήστη του Excel και μπορεί να δει μόνο στον επεξεργαστή VBA:
Στο VBA, όταν εργάζεστε με φύλλα, μπορείτε να αναφέρετε το συνηθισμένο όνομα καρτέλας:
1 | Φύλλα ("Όνομα καρτέλας"). Ενεργοποιήστε |
ή το κωδικό όνομα VBA:
1 | Κωδικό όνομα. Ενεργοποιήστε |
Η αναφορά του κωδικού ονόματος είναι επιθυμητή σε περίπτωση που αλλάξει ποτέ το όνομα της καρτέλας Φύλλο. Εάν σας επιτρέπετε την πρόσβαση του χρήστη Excel σε αλλαγή ονομάτων φύλλων, θα πρέπει να αναφέρετε το κωδικό όνομα στον κώδικα VBA, έτσι ώστε η αναντιστοιχία ονόματος καρτέλας φύλλου να μην προκαλεί σφάλμα. Τα κωδικά ονόματα των φύλλων συζητούνται λεπτομερέστερα εδώ.
Για να λάβετε το όνομα του φύλλου χρησιμοποιώντας το όνομα κωδικού VBA, κάντε τα εξής:
1 | MsgBox CodeName.Name |
Μετονομασία φύλλου
Μπορείτε να μετονομάσετε Φύλλα προσαρμόζοντας το όνομα ιδιοκτησία του Φύλλα ή Φύλλα εργασίας αντικείμενο.
Μετονομασία ActiveSheet
1 | ActiveSheet.Name = "NewName" |
Μετονομασία φύλλου με όνομα
1 | Φύλλα ("OldSheet"). Name = "NewName" |
Μετονομασία φύλλου με αριθμό ευρετηρίου φύλλου
Εδώ χρησιμοποιούμε το 1 για να μετονομάσουμε το πρώτο φύλλο στο τετράδιο εργασίας.
1 | Φύλλα (1) .Name = "NewName" |
Μετονομασία φύλλου με κωδικό όνομα
Αυτός ο κωδικός θα μετονομάσει ένα φύλλο χρησιμοποιώντας το κωδικό του όνομα VBA (συζητήθηκε παραπάνω):
1 | Component.Name = "NewName" |
Ελέγξτε αν υπάρχει όνομα φύλλου
Δημιουργήσαμε μια συνάρτηση για να ελέγξουμε εάν υπάρχει ήδη ένα Φύλλο με ένα συγκεκριμένο όνομα.
123456789101112 | «Δοκιμάστε αν υπάρχει εύρος σε φύλλο.'Αφήστε το εύρος κενό για να ελέγξετε εάν υπάρχει φύλλο'Εισόδους:'WhatSheet - String Name of Sheet (ex "Sheet1")'WhatRange (Προαιρετικό, Προεπιλογή = "A1") - Όνομα συμβολοσειράς εύρους (πρώην "A1")RangeExists (WhatSheet As String, Optional ByVal WhatRange As String = "A1") As BooleanDim test As RangeΣτο Σφάλμα Συνέχιση ΕπόμενοΟρισμός δοκιμής = ActiveWorkbook.Sheets (WhatSheet) .Range (WhatRange)RangeExists = Err.Number = 0Σφάλμα GoTo 0Λειτουργία Τέλους |
Η συνάρτηση θα επιστρέψει TRUE εάν υπάρχει το Φύλλο ή FALSE εάν δεν υπάρχει.
Χρησιμοποιήστε τη συνάρτηση ως εξής:
123 | Sub Test_SheetExists ()MsgBox RangeExists ("εγκατάσταση")Τέλος υπο |
Αντιγραφή φύλλου και μετονομασία
Αυτό το παράδειγμα προέρχεται από το άρθρο μας σχετικά με την αντιγραφή φύλλων.
Μετά την αντιγραφή και επικόλληση ενός φύλλου, το νέο φύλλο γίνεται το ActiveSheet. Έτσι, για να μετονομάσετε ένα αντιγραμμένο φύλλο, χρησιμοποιήστε απλά το ActiveSheet. Όνομα:
12345678 | Sub CopySheetRename2 ()Φύλλα ("Sheet1"). Αντιγραφή μετά: = Φύλλα (Sheets.Count)Στο Σφάλμα Συνέχιση ΕπόμενοActiveSheet.Name = "LastSheet"Σφάλμα GoTo 0Τέλος υπο |
Σημείωση: Προσθέσαμε χειρισμό σφαλμάτων για να αποφύγουμε σφάλματα εάν το όνομα του φύλλου υπάρχει ήδη.