Вам не нужно использовать команды типа активации / выбора.VBA способен работать гораздо более динамично, чем это.Использование команд активации / выбора типа также может открыть вашу кодировку до ряда непреднамеренных последствий.Иногда то, что вы считаете активным, и то, что считает активным Excel, могут быть двумя разными вещами.Рекомендуется полностью квалифицировать ваши диапазоны, чтобы в этом не было никаких сомнений.
Что касается кодирования, похоже, что вы пытаетесь вручную воспроизвести то, как вы бы нажимали на определенных диапазонах и манипулировали данными(может быть, это основано на записи макроса?).Мы можем использовать VBA более динамично, чем это!Я бы использовал что-то вроде этого:
Sub CopyPasteData()
'Declare your variables
Dim wb As Workbook
Dim criteria As String
Dim i As Long
Application.ScreenUpdating = False
'Set values for your variables.
Set wb = ThisWorkbook
criteria = wb.Sheets("Summary").Range("E4")
i = wb.Sheets(criteria).Range("A" & Rows.Count).End(xlUp).Row
'Tell excel where to copy and paste your data
wb.Sheets("Summary").Range("E1").Copy
wb.Sheets(criteria).Range("A" & i + 1).PasteSpecial xlPasteValues
wb.Sheets("Summary").Range("E2").Copy
wb.Sheets(criteria).Range("B" & i + 1).PasteSpecial xlPasteValues
wb.Sheets("Summary").Range("E3").Copy
wb.Sheets(criteria).Range("C" & i + 1).PasteSpecial xlPasteValues
wb.Sheets("Summary").Range("E4").Copy
wb.Sheets(criteria).Range("D" & i + 1).PasteSpecial xlPasteValues
Application.ScreenUpdating = True
End Sub
Если вы используете переменные для установки некоторых ваших значений, вы сможете использовать один макрос для всех ваших рабочих книг.Нет, если заявление будет необходимо!Переменная wb создает ярлык для объявления того, в какой книге должен работать макрос. Значение критерия устанавливается равным тому, что вы ввели в ячейку E4 на листе SUMMARY.Если имена ваших рабочих таблиц совпадают с раскрывающимся списком в E4, это будет указывать Excel, в какую рабочую таблицу будут помещены ваши данные. Переменная i подсчитывает количество строк, содержащих данные (и таким образом мы можем вставить новые данные в нижней части этих таблиц).строк).
Тогда последний бит кода просто сообщает Excel, где копировать данные и куда их вставлять.Отрегулируйте диапазоны по мере необходимости, чтобы сделать то, что вам нужно.