VBA Αντιγραφή στο Πρόχειρο

Αυτό το άρθρο θα δείξει πώς να χρησιμοποιήσετε το VBA για να αντιγράψετε στοιχεία στο Πρόχειρο.

Μπορεί να υπάρξει κάποια στιγμή που επιθυμούμε να αντιγράψουμε πληροφορίες στο Excel VBA και να τις αποθηκεύσουμε για χρήση σε άλλη εφαρμογή ή σε άλλη στιγμή που η μακροεντολή του Excel έχει σταματήσει να εκτελείται. Μόλις μια μακροεντολή σταματήσει να λειτουργεί, οι πληροφορίες που είναι αποθηκευμένες σε μια μεταβλητή ή μεταβλητές σταματούν να υπάρχουν και δεν μπορούν πλέον να ανακτηθούν. Ένας τρόπος επίλυσης αυτού του προβλήματος θα ήταν η αντιγραφή αυτών των πληροφοριών στο πρόχειρο.

Αντιγραφή στο Πρόχειρο χρησιμοποιώντας τη βιβλιοθήκη αντικειμένων HTML

Ο απλούστερος τρόπος για να χρησιμοποιήσετε το πρόχειρο στο Excel VBA είναι να καλέσετε τη βιβλιοθήκη αντικειμένων HTML.

1234567 Sub StoreData ()Dim varText As VariantDim objCP Ως αντικείμενοvarText = "Κάποιο αντιγραμμένο κείμενο"Ορισμός objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextΤέλος υπο

Δεδομένου ότι χρησιμοποιούμε καθυστερημένη δέσμευση δηλώνοντας τη μεταβλητή objCP ως αντικείμενο, δεν χρειάζεται να προσθέσουμε μια αναφορά στο Excel για να λειτουργήσει αυτή η διαδικασία.

Εάν τώρα έπρεπε να μεταβούμε στο φύλλο εργασίας του Excel και να κάνουμε κλικ στην Επικόλληση, το κείμενο "Ορισμένα αντιγραμμένα δεδομένα" θα εισαχθεί στο επιλεγμένο κελί.

Εάν αλλάζαμε αυτήν τη διαδικασία παραπάνω σε συνάρτηση, θα μπορούσαμε να περάσουμε το κείμενο προς αντιγραφή ως μεταβλητή.

12345 Λειτουργία StoreData (varText As Variant) ως συμβολοσειράDim objCP Ως αντικείμενοΟρισμός objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextΛειτουργία Τέλους

Στη συνέχεια, θα μπορούσαμε να καλέσουμε αυτήν τη λειτουργία πολλές φορές στον κώδικα VBA, καθώς και όταν χρειαστεί να αντιγράψουμε κείμενο στο πρόχειρο. Συνεπώς, το κείμενο δεν θα είναι σκληρά κωδικοποιημένο στον κώδικα VBA.

123 Υπο CopyData ()StoreData "Κάποιο αντιγραμμένο κείμενο"Τέλος υπο

Μπορούμε επίσης να χρησιμοποιήσουμε το αντικείμενο HTML για να επιστρέψουμε το κείμενο από το πρόχειρο - δηλαδή Επικόλληση. Για αυτό χρησιμοποιούμε το GetData και όχι τη μέθοδο SetData.

12345 Συνάρτηση ReturnData ()Dim objCP Ως αντικείμενοΟρισμός objCP = CreateObject ("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData ("κείμενο")Λειτουργία Τέλους

Στη συνέχεια, μπορούμε να καλέσουμε αυτήν τη συνάρτηση για να επιστρέψουμε τα δεδομένα που είναι αποθηκευμένα στο πρόχειρο.

123 Sub PasteData ()MsgBox ReturnDataΤέλος υπο

Ένα τακτοποιημένο κόλπο θα ήταν ο συνδυασμός των 2 συναρτήσεων, ώστε να μπορούμε να χρησιμοποιούμε την ίδια λειτουργία για την αντιγραφή και την επικόλληση δεδομένων, ανάλογα με το αν στέλνουμε ή όχι δεδομένα στο πρόχειρο ή αν θέλουμε να ανακτήσουμε δεδομένα από το πρόχειρο.

1234567891011 Λειτουργία StoreOrReturnData (Προαιρετικό strText As String) Ως συμβολοσειράDim varText As VariantDim objCP Ως αντικείμενοΟρισμός objCP = CreateObject ("HtmlFile")varText = strTextΕάν strText "" ΤότεobjCP.ParentWindow.ClipboardData.SetData "text", varTextΑλλούStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData ("κείμενο")Τέλος εανΛειτουργία Τέλους

Στον παραπάνω κώδικα, μπορούμε να κάνουμε τη μεταβλητή strText προαιρετική - αυτό σημαίνει ότι αν θέλουμε να αντιγράψουμε δεδομένα, θα συμπεριλάβουμε το κείμενο που πρόκειται να αντιγραφεί, αλλά αν θέλουμε να επικολλήσουμε δεδομένα, θα το αποκλείσουμε.

Στη συνέχεια, θα εκχωρήσουμε τη μεταβλητή συμβολοσειράς (strText) σε μια μεταβλητή παραλλαγής, προκειμένου να αποθηκευτεί στη μέθοδο SetData του αντικειμένου αρχείου HTML.

Για να αντιγράψουμε τα δεδομένα, μπορούμε να χρησιμοποιήσουμε αυτήν τη διαδικασία, σημειώστε ότι συμπεριλαμβάνουμε το κείμενο που πρόκειται να αντιγραφεί.

123 Υπο CopyData ()StoreOrReturnData "SomeCopiedText"Τέλος υπο

Για να επικολλήσετε τα δεδομένα, μπορούμε να χρησιμοποιήσουμε αυτήν τη διαδικασία. Το πλαίσιο μηνυμάτων θα εμφανίσει την τιμή που είναι αποθηκευμένη στο πρόχειρο.

123 Sub PasteData ()MsgBox StoreOrReturnDataΤέλος υπο

Θα βοηθήσει στην ανάπτυξη του τόπου, μοιράζονται τη σελίδα με τους φίλους σας

wave wave wave wave wave