Hirdetés

Új hozzászólás Aktív témák

  • Fferi50

    őstag

    válasz Louro #26198 üzenetére

    Szia!

    Ebben a pár sorban van egy kis ellentmondás:
    Workbooks.Open(Filename)
    'Itt jön a másolgatás.
    Range("B2").Select
    Selection.Copy
    Workbooks("Master.xlsx").Worksheets("Sheet1").Range(Cells(ActiveSheet.Usedrange.Rows.Count,1)).PasteSpecial xlPasteValues

    A munkafüzet megnyitása után a megnyitott munkafüzet lesz aktív, eddig rendben.
    A Select nélkül is lehet másolni: Range("B2").Copy
    A bibi itt van szerintem:
    Workbooks("Master.xlsx").Worksheets("Sheet1").Range(Cells(ActiveSheet.Usedrange.Rows.Count,1)).PasteSpecial xlPasteValues
    mivel az ActiveSheet továbbra is az, ahonnan a másolást csinálod, azaz a megnyitott munkafüzet aktív munkalapja!
    Helyette a Master fájl "Sheet1" munkalapjára kellene itt is hivatkozni. Ráadásul minden egyes file adatát ugyanabba a sorba (usedrange.rows.count) fogja beírni - azaz csak az utolsó fájl adata marad meg.
    Ezen kívül a másolást lehet direktbe is csinálni:
    Range("B2").Copy Destination:=Workbooks("Master.xlsx").Worksheets("Sheet1").Cells(Workbooks("Master.xlsx").Worksheets("Sheet1").UsedRange.Rows.Count + 1, 1)

    Természetesen a többi cella másolásánál már a UsedRange.Rows.Count kell.

    Ha viszont csak az értéket szeretnéd átvenni, akkor működik ez is:
    Workbooks("Master.xlsx").Worksheets("Sheet1").Cells(Workbooks("Master.xlsx").Worksheets("Sheet1").UsedRange.Rows.Count + 1, 1).Value=Range("B2").Value

    Üdv.

    [ Szerkesztve ]

Új hozzászólás Aktív témák