witam,
Potrzebuję pomocy w sprawie poniższego makra, ktore bedzie kopiowało dane z arkusza do innego arkusza w innym skoroszycie.
ZEST - arkusz w skoroczycie z którego dane mają być kopiowane.
Docelowy to osobny plik - do arkusza Raport tego skoroszytu mają być wstawione skopiowane komórki.
Zakresy:
ListaS - zakres w arkuszu Raport w/w skoroszytu
Range_Lookup - zakres zdefiniowany jako Lista w innym skoroszycie w arkuszu ZEST.
Błąd wywala się na docelowy.Cells(NextRow, CInt(kolumna)).Select
gdzie NextRow to kolejny wiersz, kolumna - nr kolumny od której należy rozpocząć wstawianie skopiowanych danych - zaciągnięty z InputBoxa.
Wyskakuje mi błąd w linii .Cells(NextRow, CInt(kolumna)).Select Metoda Select z klasy Range nie powiodła się. Numer błędu 1004.
Option Explicit
Sub odczytPliku()
Dim docelowy As Worksheet
Dim odczytany As Workbook
Dim sciezka As String
Dim nazwa_pliku As String
Dim iLicznik As Integer
Dim kolumna As String
Dim NextRow As Long
Dim LastRow As Long
Dim Range_Lookup As Range
Application.ScreenUpdating = False
Set docelowy = ThisWorkbook.Worksheets(3)
sciezka = ThisWorkbook.Path & "\katalog\"
nazwa_pliku = Dir(sciezka & "*.xls")
kolumna = InputBox("Wprowadź numer kolumny, do ktorej wstawić dane")
NextRow = Application.WorksheetFunction.CountA(Range("A:A")) + 1
With docelowy
Set odczytany = Workbooks.Open(sciezka & nazwa_pliku)
Application.DisplayAlerts = False
With odczytany.Worksheets("ZEST")
Set Range_Lookup = .Range("Lista")
End With
LastRow = Range("B65536").End(xlUp).Row
Do While docelowy.Cells(LastRow, "B") <> ""
docelowy.Activate
.Cells(NextRow, CInt(kolumna)).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(Raport!ListaS,Range_Lookup,1,FALSE)"
docelowy.Cells(NextRow, CInt(kolumna) + 1).Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(Raport!ListaS,Range_Lookup,6,FALSE)"
Loop
odczytany.Close
nazwa_pliku = Dir
End With
Application.ScreenUpdating = True
End Sub
Proszę o pomoc. |