VBA Panoya Kopyala

Bu makale, öğeleri Panoya kopyalamak için VBA'nın nasıl kullanılacağını gösterecektir.

Excel VBA'daki bilgileri kopyalayıp başka bir uygulamada kullanmak üzere veya Excel makrosunun çalışmayı durdurduğu başka bir zamanda saklamak istediğimiz bir zaman olabilir. Bir makro çalışmayı durdurduğunda, bir değişkende veya değişkenlerde depolanan bilgilerin varlığı durur ve artık geri alınamaz. Bu sorunu çözmenin bir yolu, bu bilgiyi panoya kopyalamak olacaktır.

HTML Nesne Kitaplığını kullanarak Panoya Kopyalama

Panoyu Excel VBA'da kullanmanın en basit yolu, HTML Nesne Kitaplığını çağırmaktır.

1234567 Alt DepoVerileri()VarText Olarak VarText DimObjCP'yi Nesne Olarak DimvarText = "Bazı kopyalanmış metinler"set objCP = CreateObject("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "metin", varTextAlt Bitiş

objCP değişkenini Object olarak bildirerek geç bağlama kullandığımızdan, bu prosedürün çalışması için Excel'e bir referans eklememize gerek yok.

Şimdi Excel çalışma sayfamıza geçip Yapıştır'ı tıklayacak olsaydık, seçilen hücreye “Bazı kopyalanan veriler” metni eklenir.

Yukarıdaki işlemi bir fonksiyona çevirecek olursak, kopyalanacak metni bir değişken olarak geçirebiliriz.

12345 Dize olarak StoreData(varText As Variant) İşleviObjCP'yi Nesne Olarak Dimset objCP = CreateObject("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "metin", varTextBitiş İşlevi

Daha sonra, metni panoya kopyalamamız gerektiğinde ve gerektiğinde VBA kodumuzda bu işlevi birden çok kez çağırabiliriz. Bu nedenle metin, VBA koduna sabit kodlanmış olmaz.

123 Alt CopyData()StoreData "Bazı kopyalanan metinler"Alt Bitiş

Metni panodan döndürmek için HTML Nesnesini de kullanabiliriz - yani Yapıştırma. Bunun için SetData yöntemi yerine GetData kullanıyoruz.

12345 İşlev ReturnData()ObjCP'yi Nesne Olarak Dimset objCP = CreateObject("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData("metin")Bitiş İşlevi

Daha sonra panoda depolanan verileri döndürmek için bu işlevi çağırabiliriz.

123 Alt YapıştırVeri()MsgBox ReturnDataAlt Bitiş

Güzel bir hile, panoya veri gönderip göndermememize veya panodan veri almak isteyip istemediğimize bağlı olarak, verileri Kopyalamak ve Yapıştırmak için aynı işlevi kullanabilmemiz için 2 işlevi bir araya getirmek olacaktır.

1234567891011 İşlev StoreOrReturnData(İsteğe bağlı strText As String) As StringVarText Olarak VarText DimObjCP'yi Nesne Olarak Dimset objCP = CreateObject("HtmlFile")varText = strTextstrText "" iseobjCP.ParentWindow.ClipboardData.SetData "metin", varTextBaşkaStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData("metin")BitirBitiş İşlevi

Yukarıdaki kodda, strText değişkenini isteğe bağlı yapabiliriz - bu, eğer verileri kopyalamak istersek, kopyalanacak metni dahil edeceğiz, ancak verileri yapıştırmak istersek, hariç tutacağız demektir.

Ardından, HTML Dosya Nesnesinin SetData yönteminde saklanması için dize değişkenini (strText) bir Variant değişkenine atayacağız.

Verileri kopyalamak için bu prosedürü kullanabiliriz, kopyalanacak metni dahil ettiğimizi unutmayın.

123 Alt CopyData()StoreOrReturnData "SomeCopiedText"Alt Bitiş

Verileri yapıştırmak için bu prosedürü kullanabiliriz. Mesaj kutusu, panoda saklanan değeri gösterecektir.

123 Alt YapıştırVeri()MsgBox StoreOrReturnDataAlt Bitiş

Arkadaşlarınızla sayfasını paylaşan sitenin gelişimine yardımcı olacak

wave wave wave wave wave