Dim lastrow As Long, lastrow2 As Long

Dim wksSource As Worksheet, wksDest As Worksheet

Dim source1 As Range, target1 As Range, source2 As Range, target2 As Range

Set wksSource = Workbooks("2021 Tracker.xlsm").Worksheets("Sheet3")

Set wksDest = Workbooks("Jan Tracker).xlsm").Worksheets("Sheet1")

lastrow = wksSource.Cells(Rows.Count, 1).End(xlUp).row

lastrow2 = wksDest.Cells(Rows.Count, 1).End(xlUp).Offset(1,0).row

Set source1 = wksSource.Range("A2:A" & lastrow)

Set source2 = wksSource.Range("B2:B" & lastrow)

Set target1 = wksDest.Range("E" & lastrow2)

Set target2 = wksDest.Range("F" & lastrow2)

source1.Copy: target1.PasteSpecial Paste:=xlPasteValues

source2.Copy: target2.PasteSpecial Paste:=xlPasteValues

यह कोड गंतव्य कार्यपुस्तिका के कॉलम ई और एफ में डेटा को प्रतिस्थापित करता है, लेकिन मैं इसे इसमें जोड़ना चाहता हूं। कृपया मदद कीजिए।

0
Satvik K 25 मार्च 2020, 02:15

1 उत्तर

सबसे बढ़िया उत्तर

आपका कोड गंतव्य वर्कशीट के कॉलम ए में अगली पंक्ति निर्धारित करता है: lastrow2 = wksDest.Cells(Rows.Count, 1).End(xlUp).Offset(1,0).Row. लेकिन आप कॉलम ई और एफ में चिपका रहे हैं। इसलिए कॉलम ए में अंतिम पंक्ति नहीं बदलती है और इसके परिणामस्वरूप ओवर-राइटिंग होती है।

मैंने इसे और अधिक पारदर्शी बनाने के लिए आपका कोड दोबारा लिखा है। मुझे लगता है कि इस प्रकार के वाक्य-विन्यास से आपके लिए त्रुटियों का पता लगाना आसान हो जाएगा, जैसा आपने पूछा था। इसे स्थापित करने में थोड़ा अधिक समय लग सकता है लेकिन समय अच्छी तरह से निवेश किया गया है।

Sub AppendData()

    Dim wksSource As Worksheet                  ' Source sheet
    Dim wksTarget As Worksheet                  ' Target sheet
    Dim Source1 As Range
    Dim Target As Range
    Dim Rl As Long                              ' last row

    Set wksSource = Workbooks("2021 Tracker.xlsm").Worksheets("Sheet3")
    With wksSource
        Rl = .Cells(.Rows.Count, "A").End(xlUp).Row
        Set Source = .Range(.Cells(2, "A"), .Cells(Rl, "B"))
    End With

    Set wksTarget = Workbooks("Jan Tracker).xlsm").Worksheets("Sheet1")
    With wksTarget
        Set Target = .Cells(.Rows.Count, "E").End(xlUp).Offset(1)
    End With

    Source.Copy Deestination:=Target
    Application.CutCopyMode = False
End Sub
0
Variatus 25 मार्च 2020, 01:50