Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 0
  • 1

Potrzebuję makro, które będzie przy zamknięciu pliku kopiować zakres i wklejać go do innego pliku.

Na teraz mam:

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("Arkusz1").Range("A1:AI400").Copy Workbooks("C:\LISTA.xlsx").Sheets("Arkusz2").Range("A1")

Niestety, przy wersji jak wyżej dostaję "Run-time error '9': Subscript out of range".

Jeżeli kopiowanie jest pomiędzy arkuszami jednego pliku, wtedy działa OK.

Adam_Głaszcz
  • Zapytał
  • @ Adam_Głaszcz | 04.12.2019
    • 0
    • 0
    • 0

Odpowiedź (1)

  • 0

Jeżeli plik LISTA.xlsx masz już otwarty, podaj odwołanie bez ścieżki (Workbooks("LISTA.xlsx")), w przeciwnym wypadku musisz najpierw otworzyć docelowy plik:

With Workbooks.Open("C:\LISTA.xlsx")
   ThisWorkbook.Sheets("Arkusz1").Range("A1:AI400").Copy .Sheets("Arkusz2").Range("A1")
   .Close SaveChanges:=True
End With

 

 
Mirosław_Janiak
  • Odpowiedział
  • @ Mirosław_Janiak | 05.12.2019
    • 1
    • 7
    • 1