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 |