Copia VBA în clipboard

Acest articol va arăta cum să utilizați VBA pentru a copia articole în Clipboard.

Este posibil să dorim să copiem informații în Excel VBA și să le stocăm pentru a le utiliza într-o altă aplicație sau într-un alt moment când macroul Excel a încetat să ruleze. Odată ce o macro încetează să ruleze, informațiile stocate într-o variabilă sau variabile nu mai există și nu mai pot fi recuperate. O modalitate de a rezolva această problemă ar fi copierea acestor informații în clipboard.

Copierea în clipboard utilizând biblioteca de obiecte HTML

Cel mai simplu mod de a utiliza clipboard-ul în Excel VBA este să apelați Biblioteca de obiecte HTML.

1234567 Sub StoreData ()Dim varText Ca variantăDim objCP Ca obiectvarText = "Un text copiat"Setați objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextSfârșitul Sub

Deoarece folosim legarea târzie declarând variabila objCP ca obiect, nu este nevoie să adăugăm o referință la Excel pentru ca această procedură să funcționeze.

Dacă ar fi să trecem acum la foaia noastră de lucru Excel și să facem clic pe Lipire, textul „Unele date copiate” ar fi inserat în celula selectată.

Dacă ar fi să schimbăm această procedură de mai sus într-o funcție, am putea trece textul care va fi copiat ca o variabilă.

12345 Function StoreData (varText As Variant) ca ȘirDim objCP Ca obiectSetați objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextFuncția de sfârșit

Apoi am putea apela această funcție de mai multe ori în codul nostru VBA ca și când trebuie să copiem text în clipboard. Prin urmare, textul nu ar fi codificat în codul VBA.

123 SubCopiereDate ()StoreData "Unele text copiat"Sfârșitul Sub

Putem folosi și obiectul HTML pentru a returna textul din clipboard - adică lipirea. Pentru aceasta folosim mai degrabă metoda GetData decât metoda SetData.

12345 Funcție ReturnData ()Dim objCP Ca obiectSetați objCP = CreateObject ("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData („text”)Funcția de sfârșit

Putem apoi apela această funcție pentru a returna datele stocate în clipboard.

123 Sub PasteData ()MsgBox ReturnDataSfârșitul Sub

Un truc elegant ar fi combinarea celor 2 funcții împreună, astfel încât să putem folosi aceeași funcție pentru a copia și a lipi date, în funcție de faptul dacă trimitem sau nu date în clipboard sau dacă dorim să preluăm date din clipboard.

1234567891011 Funcție StoreOrReturnData (StrText opțional ca șir) Ca șirDim varText Ca variantăDim objCP Ca obiectSetați objCP = CreateObject ("HtmlFile")varText = strTextDacă strText "" AtunciobjCP.ParentWindow.ClipboardData.SetData "text", varTextAltfelStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData („text”)End IfFuncția de sfârșit

În codul de mai sus, putem face opțională variabila strText - asta înseamnă că, dacă dorim să copiem date, vom include textul care trebuie copiat, dar dacă dorim să lipim date, îl vom exclude.

Vom atribui apoi variabila șir (strText) unei variabile Variant pentru a fi stocată în metoda SetData a obiectului fișier HTML.

Pentru a copia datele, putem folosi această procedură, rețineți că includem textul de copiat.

123 SubCopiereDate ()StoreOrReturnData "SomeCopiedText"Sfârșitul Sub

Pentru a lipi datele, putem folosi această procedură. Caseta de mesaj va afișa valoarea stocată în clipboard.

123 Sub PasteData ()MsgBox StoreOrReturnDataSfârșitul Sub

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave