VBA Kopier til udklipsholder

Denne artikel viser, hvordan du bruger VBA til at kopiere elementer til udklipsholderen.

Der kan være et tidspunkt, hvor vi ønsker at kopiere oplysninger i Excel VBA og gemme dem til brug i et andet program eller på et andet tidspunkt, når Excel -makroen er stoppet med at køre. Når en makro holder op med at køre, stopper oplysningerne, der er gemt i en variabel eller variabler, eksisterende og kan ikke længere hentes. En måde at løse dette problem på ville være at kopiere disse oplysninger til udklipsholderen.

Kopiering til udklipsholderen ved hjælp af HTML Object Library

Den enkleste måde at bruge udklipsholderen i Excel VBA på er at kalde HTML -objektbiblioteket.

1234567 Sub StoreData ()Dim varText As VariantDim objCP som objektvarText = "Noget kopieret tekst"Indstil objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "tekst", varTextAfslut Sub

Da vi bruger sen binding ved at erklære variablen objCP som et objekt, behøver vi ikke tilføje en reference til Excel for at få denne procedure til at fungere.

Hvis vi nu skulle skifte til vores Excel -regneark og klikke på Indsæt, ville teksten "Nogle kopierede data" indsættes i den valgte celle.

Hvis vi skulle ændre denne procedure ovenfor til en funktion, kunne vi videregive teksten, der skulle kopieres igennem som en variabel.

12345 Funktion StoreData (varText As Variant) som strengDim objCP som objektIndstil objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "tekst", varTextAfslut funktion

Vi kunne derefter kalde denne funktion flere gange i vores VBA -kode, når og når vi skal kopiere tekst til udklipsholderen. Teksten ville derfor ikke være hårdt kodet ind i VBA-koden.

123 Sub CopyData ()StoreData "Noget kopieret tekst"Afslut Sub

Vi kan også bruge HTML -objektet til at returnere teksten fra udklipsholderen - altså Indsæt. Til dette bruger vi GetData frem for SetData -metoden.

12345 Funktion ReturnData ()Dim objCP som objektIndstil objCP = CreateObject ("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData ("tekst")Afslut funktion

Vi kan derefter kalde denne funktion for at returnere de data, der er gemt på udklipsholderen.

123 Sub PasteData ()MsgBox ReturnDataAfslut Sub

Et pænt trick ville være at kombinere de 2 funktioner sammen, så vi kunne bruge den samme funktion til at kopiere og indsætte data, afhængigt af om vi sender data til udklipsholderen eller ej, eller hvis vi ønsker at hente data fra udklipsholderen.

1234567891011 Funktion StoreOrReturnData (valgfri strText som streng) som strengDim varText As VariantDim objCP som objektIndstil objCP = CreateObject ("HtmlFile")varText = strTextIf strText "" SåobjCP.ParentWindow.ClipboardData.SetData "tekst", varTextAndetStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData ("tekst")Afslut HvisAfslut funktion

I koden ovenfor kan vi gøre strText -variablen valgfri - det betyder, at hvis vi ønsker at kopiere data, vil vi inkludere den tekst, der skal kopieres, men hvis vi ønsker at indsætte data, vil vi ekskludere det.

Vi tildeler derefter strengvariablen (strText) til en variabelvariabel, så den kan gemmes i SetData -metoden i HTML -filobjektet.

For at kopiere dataene kan vi bruge denne procedure. Bemærk, at vi inkluderer teksten, der skal kopieres.

123 Sub CopyData ()StoreOrReturnData "SomeCopiedText"Afslut Sub

For at indsætte dataene kan vi bruge denne procedure. Meddelelsesboksen viser den værdi, der er gemt på udklipsholderen.

123 Sub PasteData ()MsgBox StoreOrReturnDataAfslut Sub

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave