Я думаю, что ваша проблема - линия Set importRange = ws.Range("a2" & lastrow)
. Учтите, что lastrow = 1000
: вы должны установить importRange на A21000
- отдельную ячейку, которая наверняка будет пустой.
Хотя использование UsedRange
часто не является предпочтительным методом, когда вы хотите чтобы выяснить, сколько строк / столбцов используется: при открытии книги она надежна. Вы хотите пропустить первый ряд, поэтому вы можете просто использовать UsedRange.Offset(1, 0)
. Это скопирует пустую строку в конце, но это не повредит.
clastrow = cws.Cells(ws.Rows.count, "a").End(xlUp).Row + 1
Set importRange = ws.UsedRange.Offset(1, 0)