VBA Kopier til utklippstavlen

Denne artikkelen viser hvordan du bruker VBA til å kopiere elementer til utklippstavlen.

Det kan være et tidspunkt vi ønsker å kopiere informasjon i Excel VBA og lagre den for bruk i et annet program eller på et annet tidspunkt når Excel -makroen har sluttet å kjøre. Når en makro slutter å kjøre, stopper informasjonen som er lagret i en eller flere variabler, og kan ikke lenger hentes. En måte å løse dette problemet på er å kopiere denne informasjonen til utklippstavlen.

Kopiere til utklippstavlen ved hjelp av HTML -objektbiblioteket

Den enkleste måten å bruke utklippstavlen i Excel VBA er å ringe HTML Object Library.

1234567 Sub StoreData ()Dim varText As VariantDim objCP som objektvarText = "Noe kopiert tekst"Sett objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "tekst", varTextSlutt Sub

Siden vi bruker sen binding ved å erklære variabelen objCP som et objekt, trenger vi ikke legge til en referanse til Excel for å få denne prosedyren til å fungere.

Hvis vi nå skulle bytte til vårt Excel -regneark og klikke på Lim inn, ville teksten "Noen kopierte data" settes inn i den valgte cellen.

Hvis vi skulle endre denne prosedyren ovenfor til en funksjon, kunne vi sende teksten som skal kopieres gjennom som en variabel.

12345 Funksjon StoreData (varText As Variant) som strengDim objCP som objektSett objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "tekst", varTextSluttfunksjon

Vi kan deretter kalle denne funksjonen flere ganger i vår VBA -kode når vi trenger å kopiere tekst til utklippstavlen. Teksten ville derfor ikke bli hardkodet inn i VBA-koden.

123 Sub CopyData ()StoreData "Noe kopiert tekst"Slutt Sub

Vi kan også bruke HTML -objektet til å returnere teksten fra utklippstavlen - dvs. Liming. For dette bruker vi GetData i stedet for SetData -metoden.

12345 Funksjon ReturnData ()Dim objCP som objektSett objCP = CreateObject ("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData ("tekst")Sluttfunksjon

Vi kan deretter kalle denne funksjonen for å returnere dataene som er lagret på utklippstavlen.

123 Sub PasteData ()MsgBox ReturnDataSlutt Sub

Et pent triks ville være å kombinere de to funksjonene sammen slik at vi kunne bruke den samme funksjonen til å kopiere og lime inn data, avhengig av om vi sender data til utklippstavlen eller ikke, eller om vi ønsker å hente data fra utklippstavlen eller ikke.

1234567891011 Funksjon StoreOrReturnData (valgfri strText As String) As StringDim varText As VariantDim objCP som objektSett objCP = CreateObject ("HtmlFile")varText = strTextIf strText "" DaobjCP.ParentWindow.ClipboardData.SetData "tekst", varTextEllersStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData ("tekst")Slutt omSluttfunksjon

I koden ovenfor kan vi gjøre strText -variabelen valgfri - dette betyr at hvis vi ønsker å kopiere data, vil vi inkludere teksten som skal kopieres, men hvis vi ønsker å lime inn data, vil vi utelukke det.

Vi vil deretter tilordne strengvariabelen (strText) til en variantvariabel for at den skal lagres i SetData -metoden for HTML -filobjektet.

For å kopiere dataene kan vi bruke denne fremgangsmåten, men vi tar med teksten som skal kopieres.

123 Sub CopyData ()StoreOrReturnData "SomeCopiedText"Slutt Sub

For å lime inn dataene kan vi bruke denne fremgangsmåten. Meldingsboksen viser verdien som er lagret på utklippstavlen.

123 Sub PasteData ()MsgBox StoreOrReturnDataSlutt Sub

Du vil bidra til utvikling av området, dele siden med vennene dine

wave wave wave wave wave