VBA Másolás a vágólapra

Ez a cikk bemutatja, hogyan használhatja a VBA -t az elemek vágólapra másolásához.

Előfordulhat, hogy szeretnénk másolni információkat az Excel VBA -ban, és tárolni azokat egy másik alkalmazásban, vagy más időpontban, amikor az Excel makró leáll. Amint a makró leáll, a változóban vagy változókban tárolt információ leáll, és már nem lehet lekérni. A probléma megoldásának egyik módja az információnak a vágólapra másolása.

Másolás a vágólapra a HTML Object Library használatával

A vágólap használatának legegyszerűbb módja az Excel VBA -ban a HTML -objektumkönyvtár hívása.

1234567 Adatbázis ()Dim varText Mint változatDim objCP objektumkéntvarText = "Néhány másolt szöveg"Set objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextEnd Sub

Mivel a késői kötést az objCP változó objektumként való deklarálásával használjuk, nem kell hozzá hivatkozást hozzáadnunk az Excelhez, hogy ez az eljárás működjön.

Ha most átváltanánk az Excel munkalapunkra, és a Beillesztés gombra kattintanánk, akkor a „Néhány másolt adat” szöveg kerülne be a kijelölt cellába.

Ha ezt a fenti eljárást függvénnyé változtatnánk, akkor a másolandó szöveget változóként továbbíthatnánk.

12345 Funkció StoreData (varText As Variant) karakterlánckéntDim objCP objektumkéntSet objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "text", varTextVége funkció

Ezt a funkciót többször is meghívhatjuk a VBA kódunkban, amikor és amikor szöveget kell másolnunk a vágólapra. A szöveg ezért nem lenne keményen kódolva a VBA kódba.

123 Sub CopyData ()StoreData "Néhány másolt szöveg"End Sub

Használhatjuk a HTML objektumot is, hogy visszaadjuk a szöveget a vágólapról - azaz beillesztés. Ehhez a GetData -t használjuk a SetData metódus helyett.

12345 Funkció ReturnData ()Dim objCP objektumkéntSet objCP = CreateObject ("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData ("szöveg")Vége funkció

Ezt követően meghívhatjuk ezt a funkciót, hogy visszaadjuk a vágólapon tárolt adatokat.

123 Sub PasteData ()MsgBox ReturnDataEnd Sub

Egy ügyes trükk lenne a két funkció kombinálása, hogy ugyanazt a funkciót használhassuk adatok másolásához és beillesztéséhez, attól függően, hogy adatokat küldünk -e a vágólapra vagy sem, vagy ha adatokat szeretnénk lekérni a vágólapról.

1234567891011 Funkció StoreOrReturnData (opcionális strText karakterláncként) karakterlánckéntDim varText Mint változatDim objCP objektumkéntSet objCP = CreateObject ("HtmlFile")varText = strTextHa strText "" AkkorobjCP.ParentWindow.ClipboardData.SetData "text", varTextMásStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData ("szöveg")Vége HaVége funkció

A fenti kódban az strText változót választhatóvá tehetjük - ez azt jelenti, hogy ha adatokat akarunk másolni, akkor belefoglaljuk a másolandó szöveget, de ha adatokat szeretnénk beilleszteni, akkor kizárjuk.

Ezután a karakterlánc változót (strText) hozzárendeljük egy Variant változóhoz annak érdekében, hogy a HTML File Object SetData metódusában tárolható legyen.

Az adatok másolásához használhatjuk ezt az eljárást, vegye figyelembe, hogy a másolandó szöveget is tartalmazza.

123 Sub CopyData ()StoreOrReturnData "SomeCopiedText"End Sub

Az adatok beillesztéséhez ezt az eljárást használhatjuk. Az üzenetmezőben megjelenik a vágólapon tárolt érték.

123 Sub PasteData ()MsgBox StoreOrReturnDataEnd Sub

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave