Kopyalama ve taşıma işlemlerinde şu metodlar kullanılabilir:
Hücre içeriğini kopyalamak için
Excelnesnesi.Range("Kaynak Sütun:Kaynak Satır").Copy(Excelnesnesi.Range("Hedef Sütun :Hedef Satır"))
Şeklinde bir yöntem kullanılır.
Hücre içeriğini taşımak için
Excelnesnesi.Range("Kaynak Sütun:Kaynak Satır").Cut(Destination:= Excelnesnesi.Range ("Hedef Sütun :Hedef Satır"))
Şeklinde bir yöntem kullanılır.
İşlemler bittikten sonra hafızayı temizlemek için
Excelnesnesi.CutCopyMode = False
Şeklinde bir komut satırı kullanılır.
Hücre, satır, sütun kopyalama ve taşıma işlemlerine dair örnek uygulama yapalım Form üzerine bu işlemler için kullanacağımız cmdhucrekopyala, cmdsatirkopyala, cmdsutunkopyala, cmdsayfayakopyala, cmdhucretasi adıyla 5 adet komut butonu ekliyoruz. Kodumuz da şu şekilde olacak:
Public Class Form1
Dim xl
'Excell nesnesi tanımlıyoruz
Dim range
'Range nesnemizi tanımlıyoruz
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Excel nesnesini oluşturuyoruz
xl = CreateObject("Excel.Application")
'Yeni bir çalışma kitabı ekliyoruz
xl.Workbooks.add()
'Excel sayfasını görüntülüyoruz
xl.application.visible = True
'1 nolu çalışma sayfasını aktif ediyoruz
xl.worksheets(1).Activate()
'A1 hücresine değer yazıyoruz
xl.cells.Range("$A$1") = "15"
xl.cells.Range("$A$2") = "20"
xl.cells.Range("$B$1") = "25"
xl.cells.Range("$B$2") = "30"
End Sub
Private Sub satirkopyala_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles satirkopyala.Click
'1 nolu satırı 4 nolu satıra kopyaladık
xl.Range("1:1").Copy(xl.Range("4:4"))
End Sub
Private Sub hucrekopyala_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hucrekopyala.Click
'A1 hücresini E4 hücresine kopyaladık
xl.Range("$A$1").Copy(xl.Range("$E$4"))
End Sub
Private Sub sutunkopyala_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles sutunkopyala.Click
'A sütununu F sütununa kopyaladık
xl.Range("A:A").Copy(xl.Range("F:F"))
End Sub
Private Sub hucretasi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hucretasi.Click
'A1 ve B1 hücrelerini keserek D1 hücresine taşıyoruz
xl.range("A1" & ":B" & 1).Cut(Destination:=xl.range("D" & 1))
'clipboard'u temizleyelim
xl.CutCopyMode = False
End Sub
Private Sub cmdsayfayakopyala_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsayfayakopyala.Click
Dim i
'1 nolu satırdaki 10 sütun içerisinde arama yaparak hücre
‘içerisindeki değer 10'dan büyük ise 2 nolu çalışma
‘sayfasına kopyalıyor
For i = 1 To 10
If CInt(xl.cells(i, 1).value) > 10 Then
xl.rows(i & ":" & i).copy(xl.worksheets(2).range(i & ":" & i))
End If
Next i
End Sub
End Class
Proje dosyamızın linki:
http://www.volkanaktas.com/PrgDosya/vba/excelkopyalatasi.rar