Добрый день
Продолжение темы.
Код по копированию рабочий, но есть один нюанс. Если диапазон для копирования указывать со столбца "B" все копирует нормально, но если указать со столбца "A" то копирует только первые 4-5 строк с каждого файла, а последний копирует полностью. Пока сам не могу разобраться в чем дело.
Продолжение темы.
Код по копированию рабочий, но есть один нюанс. Если диапазон для копирования указывать со столбца "B" все копирует нормально, но если указать со столбца "A" то копирует только первые 4-5 строк с каждого файла, а последний копирует полностью. Пока сам не могу разобраться в чем дело.
| Код |
|---|
Sub КопироватьДанные()
' объявляем переменные
Dim ЛистКопирования$, ДиапазонКопирования$, ЛистВставки$, ДиапазонВставки$, lLastRow As Long
ЛистКопирования$ = Sheets("Настройки").[D7] ' берём из ячейки
ДиапазонКопирования$ = Sheets("Настройки").[D8] ' берём из ячейки
ЛистВставки$ = Sheets("Настройки").[D9] ' берём из ячейки
ДиапазонВставки$ = Sheets("Настройки").[D10] ' берём из ячейки
Dim RangeList As Variant
RangeList = Application.WorksheetFunction.CountA([D15:D115])
Dim i As Long
Worksheets(ЛистВставки).Cells.ClearContents 'очистить область вставки
With Application: .ScreenUpdating = False: .DisplayAlerts = False: .Calculation = xlManual: End With
For i = 1 To RangeList
'Открываем другой файл'
Dim WB As Workbook, Sht As Worksheet, Rng As Range
Set WB = Application.Workbooks.Open(Workbooks("Сбор данных (П-1).xlsm").Sheets("Настройки").Cells(i + 14, 4), Password:="")
Set Sht = WB.Sheets(ЛистКопирования)
Set Rng = Sht.Range(ДиапазонКопирования)
'определили последнюю заполненную ячейку
lLastRow = ThisWorkbook.Sheets(ЛистВставки).Cells(Rows.Count, ДиапазонВставки).End(xlUp).Row
Rng.Copy
ThisWorkbook.Sheets(ЛистВставки).Range(ДиапазонВставки & lLastRow + 1).PasteSpecial xlPasteValues
WB.Close False
Set WB = Nothing: Set Sht = Nothing: Set Rng = Nothing
Next
With Application: .ScreenUpdating = True: .DisplayAlerts = True: .Calculation = xlCalculationAutomatic: End With
'Set sht = Nothing
ThisWorkbook.Sheets(ЛистВставки).Activate
End Sub
|