VBA Kopioi leikepöydälle

Tässä artikkelissa kerrotaan, miten VBA: ta käytetään kohteiden kopioimiseen leikepöydälle.

Saattaa olla aika, että haluamme kopioida tiedot Excel VBA: han ja tallentaa ne käytettäväksi toisessa sovelluksessa tai muulla hetkellä, kun Excel -makro on lakannut toimimasta. Kun makro lakkaa toimimasta, muuttujaan tai muuttujiin tallennetut tiedot lakkaavat olemasta, eikä niitä voi enää hakea. Yksi tapa ratkaista tämä ongelma on kopioida nämä tiedot leikepöydälle.

Kopioiminen leikepöydälle HTML -objektikirjaston avulla

Yksinkertaisin tapa käyttää leikepöytää Excel VBA: ssa on soittaa HTML -objektikirjastoon.

1234567 Sub StoreData ()Dim varText VaihtoehtonaDim objCP objektinavarText = "Jotakin kopioitua tekstiä"Aseta objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "teksti", varTextEnd Sub

Koska käytämme myöhäistä sidontaa ilmoittamalla muuttujan objCP objektiksi, meidän ei tarvitse lisätä viittausta Exceliin, jotta tämä menettely toimisi.

Jos nyt siirrymme Excel -laskentataulukkoomme ja napsautamme Liitä, teksti "Jotkut kopioidut tiedot" lisätään valittuun soluun.

Jos muuttaisimme yllä olevan menettelyn funktioksi, voisimme siirtää kopioitavan tekstin muuttujana.

12345 Toiminto StoreData (varText As Variant) merkkijononaDim objCP objektinaAseta objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "teksti", varTextLopeta toiminto

Voisimme sitten kutsua tätä toimintoa useita kertoja VBA -koodissamme, kun ja kun meidän on kopioitava teksti leikepöydälle. Tekstiä ei siksi koodattaisi VBA-koodiin.

123 Sub CopyData ()StoreData "Jotakin kopioitua tekstiä"End Sub

Voimme myös käyttää HTML -objektia tekstin palauttamiseen leikepöydältä - eli liittämiseen. Käytämme tätä varten GetDataa SetData -menetelmän sijaan.

12345 Toiminto ReturnData ()Dim objCP objektinaAseta objCP = CreateObject ("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData ("teksti")Lopeta toiminto

Voimme sitten kutsua tätä toimintoa palauttaaksesi leikepöydälle tallennetut tiedot.

123 Sub PasteData ()MsgBox ReturnDataEnd Sub

Näppärä temppu olisi kahden toiminnon yhdistäminen niin, että voisimme käyttää samaa toimintoa tietojen kopioimiseen ja liittämiseen sen mukaan, lähetämmekö tietoja leikepöydälle vai emme, tai jos haluamme hakea tietoja leikepöydältä.

1234567891011 Toiminto StoreOrReturnData (valinnainen strText merkkijonona) merkkijononaDim varText VaihtoehtonaDim objCP objektinaAseta objCP = CreateObject ("HtmlFile")varText = strTextJos strText "" SittenobjCP.ParentWindow.ClipboardData.SetData "teksti", varTextMuuStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData ("teksti")Loppu JosLopeta toiminto

Yllä olevassa koodissa voimme tehdä strText -muuttujasta valinnaisen - tämä tarkoittaa, että jos haluamme kopioida tietoja, sisällytämme kopioitavan tekstin, mutta jos haluamme liittää tiedot, suljemme sen pois.

Määritämme sitten merkkijonomuuttujan (strText) muuttujamuuttujalle, jotta se voidaan tallentaa HTML -tiedostoobjektin SetData -menetelmään.

Voit kopioida tiedot käyttämällä tätä menettelyä. Huomaa, että sisällytämme kopioitavan tekstin.

123 Sub CopyData ()StoreOrReturnData "SomeCopiedText"End Sub

Voit liittää tiedot käyttämällä tätä menettelyä. Viestiruudussa näkyy leikepöydälle tallennettu arvo.

123 Sub PasteData ()MsgBox Store tai Palauta tiedotEnd Sub

Tulet auttaa kehittämään sivuston jakaminen sivu ystävillesi

wave wave wave wave wave