Bu öğreticide, bir VBA makrosu kullanarak Kopyala ve Yapıştır ve Kes ve Yapıştır için birkaç farklı yöntem öğreneceksiniz. Daha gelişmiş kopyalama ve yapıştırma seçenekleri için Value Pasting ve PasteSpecial hakkındaki tamamlayıcı öğreticiyi okuyun.
Bu kodu kullanmak için: Visual Basic Düzenleyicisini açın (Alt + F11), Yeni bir modül takın (Ekle > Modül) ve istenen kodu kopyalayıp modüle yapıştırın.
Tek Bir Hücreyi Kopyala (Kes) ve Yapıştır
Bu örnek, A1'den B1'e tek bir hücreyi kopyalar veya keser ve yapıştırır:
123456789 | Alt Yapıştır_OneCell()'Tek Hücreyi Kopyala ve YapıştırAralık("A1").Aralığı Kopyala("B1")'Kes ve Yapıştır Tek HücreAralık("A1").Kesme Aralığı("B1")Alt Bitiş |
Seçimi Kopyala
Etkin seçimi kopyalamak istiyorsanız şunu kullanın:
123456789101112 | Alt KopyaSeçimi()'Tanımlanmış Bir Aralığa YapıştırSelection.copy aralığı ("b1")Ofset Yapıştır (2 hücreyi aşağı ve 1 hücreyi sağa kaydırırseçim.kopyaSelection.offset(2,1).pasteApplication.CutCopyMode = YanlışAlt Bitiş |
Bir Hücre Aralığını Kopyala (Kes) ve Yapıştır
Bu örnek, A1:A3'ten B1:B3'e kadar bir hücre aralığını kopyalar veya keser ve yapıştırır:
123456789 | Alt Yapıştır_Aralığı()'Bir dizi hücreyi kopyalayıp yapıştırınAralık("A1:A3").Aralığı Kopyala("B1:B3")'Bir dizi hücreyi kes ve yapıştırAralık("A1:A3").Kesme Aralığı("B1:B3")Alt Bitiş |
Tüm Sütunu Kopyala (Kes) ve Yapıştır
Aşağıda birkaç hızlı örnek göstereceğiz. Ayrıntılı örnekler, açıklamalar ve varyasyonlar için Satırları ve Sütunları Kopyalama ve Yapıştırma hakkındaki makalemizi okuyun.
Bu örnek, A'dan B'ye tüm sütunu kopyalar veya keser ve yapıştırır:
12345678910 | Alt YapıştırOneColumn()'Sütunu Kopyala ve YapıştırAralık("A:A").Aralığı Kopyala("B:B")'Kes ve Yapıştır SütunuAralık("A:A").Kesme Aralığı("B:B")Alt Bitiş |
Tüm Satırı Kopyala (Kes) ve Yapıştır
Bu örnek, 1'den 2'ye kadar tüm satırı kopyalar veya keser ve yapıştırır:
12345678910 | Alt Yapıştır_OneRow()'Satırı Kopyala ve YapıştırAralık("1:1").Aralığı Kopyala("2:2")'Kes ve Yapıştır SatırıAralık("1:1").Kesme Aralığı("2:2")Alt Bitiş |
Kopyala (Kes) ve Başka Bir Çalışma Sayfasına veya Çalışma Kitabına Yapıştır
1234567891011121314 | Alt Yapıştır_Other_Sheet_or_Book()'Kes veya başka bir çalışma sayfasına Kopyala ve YapıştırÇalışma Sayfaları("sayfa1").Aralık("A1").Kopya Çalışma Sayfaları("sayfa2").Aralık("B1") 'KopyalaWorksheets("sheet1").Range("A1").Cut Worksheets("sheet2").Range("B1") 'Cut'Kes veya Kopyala ve Başka bir çalışma kitabına YapıştırWorkbooks("book1.xlsm").Worksheets("sheet1").Range("A1").Copy _Workbooks("book2.xlsm").Worksheets("sheet1").Range("B1") 'CopyÇalışma Kitapları("book1.xlsm").Çalışma sayfaları("sayfa1").Aralık("A1").Kes _Workbooks("book2.xlsm").Worksheets("sheet1").Range("B1") 'KesApplication.CutCopyMode = YanlışAlt Bitiş |
Değer Yapıştır
Normalde, Kopyalayıp Yapıştırdığınızda, bir hücrenin tüm özelliklerini yapıştırırsınız: biçimlendirme, formüller, vb… Değer Yapıştırma, hücrelerin değerlerini Kopyalayıp yapıştırmanıza izin verir ve başka bir şey yapmaz. VBA'da Değer Yapıştır'ın en kolay yolu, hücrenin değerini doğrudan tanımlamaktır:
123456789101112131415 | Alt DeğerPaste()'Değer Yapıştır HücreleriAralık("B1").değer = Aralık("A1").değerAralık("B1:B3").değer = Aralık("A1:A3").değer'Çalışma Sayfaları Arasındaki Değerleri AyarlayınWorksheets("sheet2").range("A1").value = Worksheets("sheet1").range("A1").value'Çalışma Kitapları Arasındaki Değerleri AyarlaWorkbooks("book2.xlsm").Worksheets("sheet1").range("A1").value = _Workbooks("book1.xlsm").Worksheets("sheet1").range("A1").valueApplication.CutCopyMode = YanlışAlt Bitiş |
Özel yapıştır
Özel Yapıştır, hücrelerin belirli özelliklerini (örnekler: biçimler, değerler, sütun genişlikleri vb.) Kopyalayıp Yapıştırmanıza olanak tanır. Ayrıca özel yapıştırma işlemleri gerçekleştirmenize de olanak tanır (örnekler: boşlukları atlama, devrik). Aşağıda birkaç örneğe bakacağız, ancak derinlemesine bir inceleme için Value Pasting ve Paste Special hakkındaki eğitimimizi okuyun.
12345678910111213141516171819 | Alt YapıştırÖzel()'Bir Yapıştır Özel İşlemi gerçekleştirin:Aralık("A1").Kopyala'Biçimleri YapıştırRange("B1").PasteSpecial Paste:=xlPasteFormats'Sütun Genişliklerini YapıştırRange("B1").PasteSpecial Paste:=xlPasteColumnWidths'Formülleri YapıştırRange("B1").PasteSpecial Paste:=xlPasteFormüller'Birden Çok Yapıştırma Özel İşlemini Aynı Anda Gerçekleştirin:Aralık("A1").Kopyala'Biçimleri Yapıştır ve AktarRange("B1").PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, SkipBlanks:= _Yanlış, Devir:=DoğruApplication.CutCopyMode = YanlışAlt Bitiş |
Panoyu Temizle
Kopyalayıp Yapıştırdıktan sonra panoyu temizlemek isteyebilirsiniz (yukarıdaki bazı kod örneklerinde yapıyoruz). Excel panosunu temizlemek için Application.CutCopyMode öğesini False olarak ayarladık:
1 | Application.CutCopyMode = Yanlış |
Bu, Excel'in panosunu temizleyecektir. Ancak, Windows Panosu'nu temizlemeyecektir. Pencere panosunu temizlemek için buradaki talimatları izleyin.