Šis raksts parādīs, kā izmantot VBA, lai kopētu vienumus starpliktuvē.
Var būt laiks, kad mēs vēlamies kopēt informāciju programmā Excel VBA un saglabāt to, lai to izmantotu citā lietojumprogrammā vai citā laikā, kad Excel makro darbība ir pārtraukta. Tiklīdz makro pārtrauc darboties, informācija, kas tiek glabāta mainīgajā vai mainīgajos, pārstāj pastāvēt un to vairs nevar izgūt. Šīs problēmas risināšanas veids būtu šīs informācijas kopēšana starpliktuvē.
Kopēšana starpliktuvē, izmantojot HTML objektu bibliotēku
Vienkāršākais veids, kā izmantot starpliktuvi programmā Excel VBA, ir izsaukt HTML objektu bibliotēku.
1234567 | Apakšveikala dati ()Dim varText Kā variantsDim objCP kā objektsvarText = "Kaut kāds nokopēts teksts"Iestatīt objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "teksts", varTextBeigu apakš |
Tā kā mēs izmantojam vēlo saistīšanu, deklarējot mainīgo objCP kā objektu, mums nav jāpievieno atsauce uz Excel, lai šī procedūra darbotos.
Ja mēs tagad pārslēgtos uz savu Excel darblapu un noklikšķinātu uz Ielīmēt, atlasītajā šūnā tiktu ievietots teksts “Daži kopēti dati”.
Ja mēs šo procedūru mainītu par funkciju, mēs varētu nodot kopējamo tekstu kā mainīgo.
12345 | Funkcija StoreData (varText As Variant) kā virkneDim objCP kā objektsIestatīt objCP = CreateObject ("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "teksts", varTextBeigu funkcija |
Pēc tam šo funkciju mēs varētu izsaukt vairākas reizes mūsu VBA kodā, kad un kad mums ir nepieciešams kopēt tekstu starpliktuvē. Tāpēc teksts nebūtu grūti iekodēts VBA kodā.
123 | Sub CopyData ()StoreData "Daži nokopēti teksti"Beigu apakš |
Mēs varam arī izmantot HTML objektu, lai atgrieztu tekstu no starpliktuves, ti, ielīmējot. Šim nolūkam mēs izmantojam GetData, nevis SetData metodi.
12345 | Funkcija ReturnData ()Dim objCP kā objektsIestatīt objCP = CreateObject ("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData ("teksts")Beigu funkcija |
Pēc tam mēs varam izsaukt šo funkciju, lai atgrieztu starpliktuvē saglabātos datus.
123 | Sub PasteData ()MsgBox ReturnDataBeigu apakš |
Jauks triks būtu divu funkciju apvienošana kopā, lai mēs varētu izmantot vienu un to pašu funkciju datu kopēšanai un ielīmēšanai atkarībā no tā, vai mēs nosūtām datus uz starpliktuvi vai ne, vai arī, ja mēs vēlamies izgūt datus no starpliktuves.
1234567891011 | Funkcija StoreOrReturnData (pēc izvēles strText kā virkne) kā virkneDim varText Kā variantsDim objCP kā objektsIestatīt objCP = CreateObject ("HtmlFile")varText = strTextJa strText "" TadobjCP.ParentWindow.ClipboardData.SetData "teksts", varTextCitādiStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData ("teksts")Beigas JaBeigu funkcija |
Iepriekš minētajā kodā mēs varam padarīt mainīgo strText neobligātu - tas nozīmē, ka, ja mēs vēlamies kopēt datus, mēs iekļausim kopējamo tekstu, bet, ja mēs vēlēsimies ielīmēt datus, mēs to izslēgsim.
Pēc tam mēs piešķirsim virknes mainīgo (strText) mainīgajam variantam, lai tas tiktu saglabāts HTML faila objekta SetData metodē.
Lai kopētu datus, mēs varam izmantot šo procedūru, ņemiet vērā, ka mēs iekļaujam kopējamo tekstu.
123 | Sub CopyData ()StoreOrReturnData "SomeCopiedText"Beigu apakš |
Lai ielīmētu datus, mēs varam izmantot šo procedūru. Ziņojumu lodziņā tiks parādīta starpliktuvē saglabātā vērtība.
123 | Sub PasteData ()MsgBox StoreOrReturnDataBeigu apakš |