VBA Kopiera till Urklipp

Den här artikeln visar hur du använder VBA för att kopiera objekt till Urklipp.

Det kan finnas en tid då vi vill kopiera information i Excel VBA och lagra den för användning i ett annat program eller vid en annan tidpunkt när Excel -makrot har slutat köra. När ett makro slutar köra, slutar informationen som lagras i en variabel eller variabler att existera och kan inte längre hämtas. Ett sätt att lösa detta problem skulle vara att kopiera denna information till Urklipp.

Kopiera till Urklipp med hjälp av HTML -objektbiblioteket

Det enklaste sättet att använda Urklipp i Excel VBA är att ringa HTML -objektbiblioteket.

1234567 Sub StoreData ()Dim varText Som variantDim objCP som objektvarText = "En del kopierad text"Ange objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextAvsluta Sub

Eftersom vi använder sen bindning genom att deklarera variabeln objCP som ett objekt behöver vi inte lägga till en referens till Excel för att detta förfarande ska fungera.

Om vi ​​nu skulle byta till vårt Excel -kalkylblad och klicka på Klistra in, skulle texten "Några kopierade data" infogas i den markerade cellen.

Om vi ​​skulle ändra denna procedur ovan till en funktion, kunde vi skicka texten som ska kopieras som en variabel.

12345 Funktion StoreData (varText som variant) som strängDim objCP som objektAnge objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextAvsluta funktion

Vi skulle då kunna kalla den här funktionen flera gånger i vår VBA -kod när och när vi behöver kopiera text till Urklipp. Texten skulle därför inte vara hårdkodad i VBA-koden.

123 Sub CopyData ()StoreData "En del kopierad text"Avsluta Sub

Vi kan också använda HTML -objektet för att returnera texten från Urklipp - dvs Klistra in. För detta använder vi GetData snarare än SetData -metoden.

12345 Funktion ReturnData ()Dim objCP som objektAnge objCP = CreateObject ("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData ("text")Avsluta funktion

Vi kan sedan ringa den här funktionen för att returnera data som är lagrade på Urklipp.

123 Sub PasteData ()MsgBox ReturnDataAvsluta Sub

Ett snyggt trick skulle vara att kombinera de två funktionerna tillsammans så att vi kunde använda samma funktion för att kopiera och klistra in data, beroende på om vi skickar data till Urklipp eller inte, eller om vi vill hämta data från Urklipp.

1234567891011 Funktion StoreOrReturnData (valfri strText som sträng) Som strängDim varText Som variantDim objCP som objektAnge objCP = CreateObject ("HtmlFile")varText = strTextIf strText "" DåobjCP.ParentWindow.ClipboardData.SetData "text", varTextAnnanStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData ("text")Avsluta omAvsluta funktion

I koden ovan kan vi göra strText -variabeln valfri - det betyder att om vi vill kopiera data kommer vi att inkludera texten som ska kopieras, men om vi vill klistra in data kommer vi att utesluta den.

Vi kommer sedan att tilldela strängvariabeln (strText) till en variantvariabel för att den ska lagras i SetData -metoden för HTML -filobjektet.

För att kopiera data kan vi använda denna procedur. Observera att vi inkluderar texten som ska kopieras.

123 Sub CopyData ()StoreOrReturnData "SomeCopiedText"Avsluta Sub

För att klistra in data kan vi använda den här proceduren. Meddelanderutan visar värdet som är lagrat på Urklipp.

123 Sub PasteData ()MsgBox StoreOrReturnDataAvsluta Sub

Du kommer att bidra till utvecklingen av webbplatsen, dela sidan med dina vänner

wave wave wave wave wave