Skopírujte VBA do schránky

Tento článok ukáže, ako používať VBA na kopírovanie položiek do schránky.

Je možné, že budeme chcieť skopírovať informácie do programu Excel VBA a uložiť ich na použitie v inej aplikácii alebo v inom čase, keď sa makro programu Excel zastaví. Keď sa makro zastaví, informácie, ktoré sú uložené v premennej alebo premenných, prestanú existovať a už ich nemožno získať. Tento problém by bolo možné skopírovať do schránky.

Kopírovanie do schránky pomocou knižnice objektov HTML

Najjednoduchší spôsob, ako použiť schránku v programe Excel VBA, je zavolať do knižnice objektov HTML.

1234567 Údaje vedľajšieho obchodu ()Dim varText ako variantDim objCP ako objektvarText = "Nejaký skopírovaný text"Nastaviť objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextKoniec pod

Pretože používame neskorú väzbu deklarovaním premennej objCP ako objektu, nepotrebujeme pridať odkaz na Excel, aby tento postup fungoval.

Ak by sme teraz prešli na náš pracovný hárok programu Excel a klikli na položku Prilepiť, do vybratej bunky by sa vložil text „Niektoré skopírované údaje“.

Ak by sme tento postup vyššie zmenili na funkciu, mohli by sme text, ktorý sa má skopírovať, odovzdať ako premennú.

12345 Funkcia StoreData (varText ako variant) ako reťazecDim objCP ako objektNastaviť objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextKoncová funkcia

Túto funkciu by sme potom mohli v našom kóde VBA zavolať niekoľkokrát, keď potrebujeme skopírovať text do schránky. Text by preto nebol pevne zakódovaný do kódu VBA.

123 Vedľajšia kópia údajov ()StoreData „Nejaký skopírovaný text“Koniec pod

Objekt HTML môžeme použiť aj na vrátenie textu zo schránky - teda vkladanie. Na tento účel používame skôr metódu GetData než SetData.

12345 Funkcia ReturnData ()Dim objCP ako objektNastaviť objCP = CreateObject ("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData ("text")Koncová funkcia

Túto funkciu potom môžeme zavolať a vrátiť údaje uložené v schránke.

123 Sub PasteData ()MsgBox ReturnDataKoniec pod

Úhľadným trikom by bolo skombinovanie týchto dvoch funkcií dohromady, aby sme mohli rovnakú funkciu použiť na kopírovanie a vkladanie údajov v závislosti od toho, či odosielame údaje do schránky alebo nie, alebo či chceme načítať údaje zo schránky.

1234567891011 Funkcia StoreOrReturnData (voliteľný strText ako reťazec) ako reťazecDim varText ako variantDim objCP ako objektNastaviť objCP = CreateObject ("HtmlFile")varText = strTextAk strText "" PotomobjCP.ParentWindow.ClipboardData.SetData "text", varTextInakStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData („text“)Koniec AkKoncová funkcia

Vo vyššie uvedenom kóde môžeme premennú strText nastaviť ako voliteľnú - to znamená, že ak chceme skopírovať údaje, zahrnieme text, ktorý sa má skopírovať, ale ak chceme prilepiť údaje, vylúčime ich.

Reťazcovú premennú (strText) potom priradíme k premennej Variant, aby bola uložená v metóde SetData objektu súboru HTML.

Na kopírovanie údajov môžeme použiť tento postup, upozorňujeme, že vkladáme text, ktorý sa má skopírovať.

123 Vedľajšia kópia údajov ()StoreOrReturnData "SomeCopiedText"Koniec pod

Na vloženie údajov môžeme použiť tento postup. V okne so správou sa zobrazí hodnota uložená v schránke.

123 Sub PasteData ()MsgBox StoreOrReturnDataKoniec pod

Vám pomôže rozvoju miesta, zdieľať stránku s priateľmi

wave wave wave wave wave