Ваши команды ActiveCell.Offset ( r , c ) используют отрицательные числа.Это будет зависеть от того, находится ли текущая активная ячейка в положении, в котором отрицательные смещения не пытаются. Выберите ячейку, которая находится вне рабочего листа слева от столбца А или ячейку над строкой 1.
ActiveCell.Offset(-10, -7).Range("A1").Select
Это требует, чтобы ActiveCell был как минимум на 10 строк ниже и на 7 столбцов справа от A1;в частности, K8 или вправо / вниз от K8.Все, что ближе к A1, приведет к ошибке, так как вы пытаетесь выбрать ячейку вне рабочего листа.
ActiveCell.Offset(-25, -6).Range("A1").Select
То же самое для этого оператора, но минимальное расстояние для ActiveCell от A1 будет Z7.
Свойство ActiveCell изменяется каждый раз, когда вы выбираете другую ячейку.Нельзя полагаться на «автоматическую передачу» данных между листами, если только вы не проверите, чтобы ActiveCell находился там, где вам нужно, на каждом листе до запуска вашей подпроцедуры.
Любые дальнейшие рекомендациипотребуются конкретные имена и диапазоны рабочих листов для источника и цели операции копирования и вставки.
.Range ("A1") в ActiveCell.Offset (-10, -7) .Range ("A1"). Выбор означает просто верхнюю левую ячейку в диапазоне ActiveCell.Offset (-10, -7).Вероятно, это «похмелье» от записи макросов с относительным расположением.