Bir hücrenin değerini başka bir hücreye kopyalamak istediğiniz bir örneği ele alalım. rand() fonksiyonunu kullanarak, A1 hücresi için rastgele bir değer üretirsiniz.

Aşağıda gösterildiği gibi, Excel VBA'da kopyala-yapıştır formülünü kullanarak değeri A1 Hücresinden D4 Hücresine kopyalayıp yapıştırıyoruz. Paste yöntemi, panoda saklanan verileri veya bilgileri çalışma sayfasındaki belirli bir konuma yapıştırmak için kullanılır. Aşağıda gösterildiği gibi VBA'da Kopyala Yapıştır için çıktıyla sonuçlanacaktır.

- Çıktı

VBA'da Kopyala Yapıştır Nasıl Yapılır?
VBA'da Kopyala Yapıştır yapmak için, bir çalışma sayfasındaki verileri veya bilgileri bir konumdan diğerine taşımak amacıyla Kopyala ve Yapıştır yöntemlerini kullanabilirsiniz.
Bu yöntemlerin nasıl kullanılacağına dair bir örnek şöyledir:
- Araç çubuğundaki “Geliştirici” bölümüne gidin ve “Visual Basic” seçeneğine tıklayın. Şimdi, işlevler ve alt prosedürler eklemek için VBA Düzenleyicisi açılır. Ardından, yeni bir modül veya boş sayfa oluşturmak için “Ekle” ve ardından “Modül” düğmesine tıklayın.



- A1-A10 hücrelerinden oluşan bir tabloyu ve çalışma sayfasının başka bir bölümüne kopyalanacak değerlerini düşünün. Burada VBA Excel Range'i kopyalayıp yapıştırmak için Range işlevini kullanırız.

- Aralıktaki değerleri kopyalayıp yapıştırmak için bir alt prosedür oluşturun.

- Kopyalanacak aralığı seçin ve bunu panoya kopyalayın. Buradaki aralık A1:A10'dur.

- Kopyalanan değerleri yapıştırmak istediğiniz yeri seçin ve ActiveSheet formülünü kullanarak yapıştırın. İşte, C1 hücresi.

Kod:
Sub PrintExample()
Range(“A1:A10”).Select
Selection.Copy
Range(“C1”).Select
ActiveSheet.Paste
End Sub - Kodu çalıştırmak için alt prosedürü çalıştırmak üzere Çalıştır düğmesine veya “F5” düğmesine tıklayın. Kopyalanan değerleri C1-C10 hücrelerinden yapıştıracaktır.

Örnekler
Excel'de Kopyala-Yapıştır işlemini detaylı anlamak için bazı örneklere bakalım.
Örnek 1 – Aralık Nesnesini Kullanarak Değerleri Kopyala ve Yapıştır
VBA'da birden fazla hücreden bir değer aralığını kopyalayıp diğer hücrelere yapıştırmak istediğiniz bir kopyala yapıştırma örneğini düşünün. Burada, sayılar Excel işlevi randbetween() kullanılarak 1-10 arasında rastgele üretilir
=RANDBTWEEN(1,10)
Bu değerleri E1-E10 hücrelerine yazdırır.

- Adım 1: Bir aralıktaki değerleri kopyalayıp yapıştırmak için kullanıcı tanımlı bir alt prosedür tanımlayın.


- Adım 3: Kaynak ve Hedef'i kullanarak kopyalanacak kaynağı ve yapıştırılacak hedefi değişkenleri atayın .

- Adım 4: Kopyala fonksiyonunu kullanarak kaynak değerlerini panoya kopyalayın ve PasteSpecial fonksiyonunu kullanarak yapıştırın.

Kod:
Sub CopyPasteWithRange()
Dim Source As Range
Dim Dest As Range
Set Source = Range(“E1:E10”)
Set Dest = Range(“G1:H1”)
Source.Copy
Dest.PasteSpecial xlPasteValues
End Sub
Burada, xlPasteValues yapıştırılacak aralığın bir kısmını belirtir, bu durumda tüm değerler.
- Adım 5: Run butonunu kullanarak kodu çalıştırın. Çıktı, aşağıda gösterildiği gibi VBA'da Kopyala Yapıştır'dır. Rastgele bir fonksiyon kullandığımız için, kaynak değerleri kod her çalıştırıldığında değişecektir.

Örnek 2 – Aynı Çalışma Kitabındaki Başka Bir Çalışma Sayfasına Kopyalama
Bir çalışma sayfasından diğerine değerleri kopyalamanız gerekebilecek bir tablo düşünün. RANGE ve VALUE işlevlerini kullanarak değerleri başka bir sayfaya kopyalayıp yapıştırıyoruz. Değerlerin C1-C10 hücrelerindeki “Example_2.1”de olduğunu varsayın.

- Adım 1: Değerleri bir çalışma sayfasından diğerine kopyalayıp yapıştıran bir alt prosedür başlatın.

- Adım 2: Range veri tipinde iki değişken (s' ve 'd') tanımlayın.

- Adım 3: Kaynak ve hedef sütunlarını sırasıyla 's' ve 'd'ye atayın.

- Adım 4: VBA'da Kopyala-Yapıştır yapmak için , “Example_2.1”deki C sütunundan “Example_2”deki F sütununa tabloyu başarıyla kopyalayıp yapıştırmak için değerleri eşitleyin.

Kod:
Sub CopyAndPasteBetweenSheets()
Dim s As Range
Dim d As Range
Set s = Worksheets(“Example_2.1”).Range(“C1:C10”)
Set d = Worksheets(“Example_2”).Range(“F1:F10”)
d.value = s.value
End Sub
- Adım 5: VBA kodunu çalıştırın ve çıktıyı yazdırın.

Örnek 3 – Bir çalışma kitabından diğer çalışma kitabına kopyalama
Değerlerinin bir çalışma kitabından diğerine kopyalanması gereken bir tabloyu düşünün.

- Adım 1: Bir çalışma kitabından diğerine değerleri kopyalayıp yapıştırmak için bir alt prosedür oluşturun.

- Adım 2: Aralık veri türünden s2 ve d2 adlı iki değişkeni başlatın.

- Adım 3: Kaynak çalışma kitabını s2'ye, değerlerin kaynaktan d2'ye kopyalandıktan sonra yazdırılacağı hedef çalışma kitabını atayın.

- Adım 4: Kopyalama işleminin gerçekleşmesi için her iki değeri de eşitleyin.

Kod:
Sub CopyAndPasteBetweenWorkbooks()
Dim s2 As Range
Dim d2 As Range
Set s2 = Workbooks(“Copy and Paste in VBA.xlsm”). Worksheets(“Example_3”).Range(“A1:A10”)
Set d2 = Workbooks(“Copy_paste.xlsm”).Worksheets(“Sheet1”).Range(“A1:A10”)
d2.value = s2.value
End Sub
- Adım 5: Kodu çalıştırdıktan sonra, tablo Çalışma Kitabı “Copy_paste.xlsm”deki A1-A10 hücrelerine yazdırılacaktır.

VBA'da Değer Olarak Kopyalama ve Yapıştırmanın En İyi Yolları
- 'Kopyala' ve 'Yapıştır' yöntemlerini kullanarak.

Bu yöntem, Copy metodunu kullanarak değerleri kaynak aralıktan panoya kopyalar ve ardından PasteSpecial metodunu kullanarak değerleri panodan hedef aralığa yapıştırır.
- Değer özelliğini kullanma

Bu yöntem, Değer özelliğini kullanarak değerleri doğrudan kaynak aralıktan hedef aralığa atar. Verileri kopyalamak ve yapıştırmak için panoyu kullanmaktan daha hızlı ve daha verimlidir.
- Hedef argümanı ile Range.Copy formülünü kullanma:

Bu yöntem, değerleri kaynak aralıktan hedef aralığa kopyalamak için hedef argümanlı Kopyala yöntemini kullanır. Bu yöntem, verileri kopyalamak ve yapıştırmak için panoyu kullanmaktan daha hızlıdır.
- Range.Value2 özelliğini kullanarak.

Bu yöntem, değerleri doğrudan kaynak aralıktan hedef aralığa atamak için Range nesnesinin Value2 özelliğini kullanır. Bu yöntem, Value özelliğini kullanmaktan daha hızlıdır, ancak yalnızca bazı veri türleri için işe yarayabilir.
