Excel VBA Kopyala Yapıştır Yalnızca Değerler( xlPasteValues )

SayfaA'daki tüm sütunu Sayfa B'ye kopyalamaya çalışıyorum. sayfaA sütununda formüllerle oluşturulmuş değerler var. SayfaA sütun değerlerini yalnızca xlPasteValues kullanarak kopyalıyorum. Ancak değerleri başka bir sayfaB'ye yapıştırmıyor. SayfaB'deki sütun boş. Benim VBA Kodum

    Public Sub CopyrangeA()

    Dim firstrowDB As Long, lastrow As Long
    Dim arr1, arr2, i As Integer

    firstrowDB = 1
    arr1 = Array("BJ", "BK")
    arr2 = Array("A", "B")

         For i = LBound(arr1) To UBound(arr1)
        With Sheets("SheetA")
           lastrow = Application.Max(3, .Cells(.Rows.Count, arr1(i)).End(xlUp).Row)
           .Range(.Cells(1, arr1(i)), .Cells(lastrow, arr1(i))).Copy
           Sheets("SheetB").Range(arr2(i) & firstrowDB).PasteSpecial xlPasteValues
        End With
    Next
    Application.CutCopyMode = False

End Sub
Çözüm

Sadece tüm sütunu kopyalamak istiyorsanız, şöyle bir şey yaparak kodu çok basitleştirebilirsiniz:

Sub CopyCol()

    Sheets("Sheet1").Columns(1).Copy

    Sheets("Sheet2").Columns(2).PasteSpecial xlPasteValues

End Sub

Ya da

Sub CopyCol()

    Sheets("Sheet1").Columns("A").Copy

    Sheets("Sheet2").Columns("B").PasteSpecial xlPasteValues

End Sub

Ya da döngüyü devam ettirmek istiyorsanız

Public Sub CopyrangeA()

    Dim firstrowDB As Long, lastrow As Long
    Dim arr1, arr2, i As Integer

    firstrowDB = 1
    arr1 = Array("BJ", "BK")
    arr2 = Array("A", "B")

    For i = LBound(arr1) To UBound(arr1)

        Sheets("Sheet1").Columns(arr1(i)).Copy

        Sheets("Sheet2").Columns(arr2(i)).PasteSpecial xlPasteValues

    Next
    Application.CutCopyMode = False

End Sub
Yorumlar (1)

Ben olsam kopyala/yapıştır yapmazdım.

      Sheets("SheetB").Range(arr2(i) & firstrowDB).Resize(lastrow, 1).Value = .Range(.Cells(1, arr1(i)), .Cells(lastrow, arr1(i))).Value
Yorumlar (0)

Şahsen, ihtiyacınız olan tek şey sütunlarsa ben de biraz kısaltırdım:

For i = LBound(arr1) To UBound(arr1)
    Sheets("SheetA").Columns(arr1(i)).Copy
    Sheets("SheetB").Columns(arr2(i)).PasteSpecial xlPasteValues
    Application.CutCopyMode = False
Next

Bu kod parçacığından da anlaşılacağı üzere, lastrow veya firstrowDB kullanmanın pek bir anlamı yoktur

Yorumlar (0)