Люди добрые!
Помогите, ради Бога, едва начинающему программеру! Прошу не корысти ради, а волей достающей мя работы.
Мне надо сделать копирование из одного документа в другой; в 1-ом документе отбор делается по диапазону ячеек, начиная с «А19».
Если «А19» = 1 и «А20» <> 2, то копируем I21, K21, P21;
Если «А19» =1 и «А20» = 2 и «А21» <>3, то копируем I22, K22, P22 и т.д. до «А39».
Я написала: If Range("A19") = "1" And Range("A20") <> "2" Then… далее выполняется копирование и через PasteSpecial вставляется в нужные ячейки другого документа.
Затем: ElseIf Range("A19") = "1" And Range("A20") = "2" And Range("A21") <> "3" Then…
и т.д.
И последнее у меня получилось такое:
ElseIf Range("A19") = "1" And Range("A20") = "2" _
And Range("A21") = "3" And Range("A22") = "4" And Range("A23") = "5" _
And Range("A24") = "6" And Range("A25") = "7" And Range("A26") = "8" _
And Range("A27") = "9" And Range("A28") = "10" And Range("A29") = "11" _
And Range("A30") = "12" And Range("A31") = "13" And Range("A32") = "14" _
And Range("A33") = "15" And Range("A34") = "16" And Range("A35") = "17" _
And Range("A36") = "18" And Range("A37") = "19" And Range("A38") = "20" _
And Range("A39") <> "21" Then…
Но весь этот макрос получился длиной в километр; на одном компьютере он выполняется, а на другом, который на работе, сообщает о том, что «Procedure is too large», а что делать далее я не ведаю , а очень надо.
М.б. это можно сделать через Do…loop, но я не могу сообразить как.
Пожалуйста, помогите! :shock:
Копирование в Excel
Модератор: Naeel Maqsudov