Замена данных по условию - VB

Узнай цену своей работы

Формулировка задачи:

Помогите доработать Макрос. Посмотрите Пожалуйста, может кто знает как сделать. Буду благодарен за любую помощь. Спасибо Здравствуйте! Вот такой вопрос. Есть файл Протокол в нем есть Лист Перечень, в который входят: - шифр продукции - цена - сотрудник - кто поставляет - кто изготовил - протокол Также есть лист Цены в котором также отражается эта информация, только с учетом обновленных данных Я написал макрос для замены данных из Листа Цены в Лист Перечень, по определенным критериям, а точнее вот так:
В чем суть, макрос Берет информацию из Листа Цены и проверяет по столбцу 1 (шифр продукции) Лист Перечень, при совпадении (шифра продукции) происходит замена цены, сотрудника, кто поставлял,кто изготовил, протокол. Но есть существенный недостаток при количестве строк свыше 40 000 тысяч (а Перечень именно такой) цикл работы макроса по каждой позиции очень много занимает времени. Помогите как сделать, что бы - макрос работал быстрее в несколько раз(Время обработки сократить) - после замены по тем позициям которые были найдены, проставлял бы в Листе Цены в столбце “Результат обработки” информацию о том что “Продукция найдена и цены проставлены” Спасибо огромное!

Решение задачи: «Замена данных по условию»

textual
Листинг программы
Sub Замена_цен()
 
Dim a1 as long
Dim a2 as long
Dim a3 as long
Dim a4 as long
Dim a7 as long 
 
For a1 = 2 To 65000
If Cells(a1, 1) <> "" Then st = a1
Next a1
 
'''a2 = ActiveWorkbook.Name ???
 
Workbooks("Протокол.xls").Activate
Sheets("Цены").Select
 
For a3 = 2 To 65000
If Cells(a3, 1) <> "" Then stt = a3
Next a3
 
For a4 = 2 To stt
a11 = "A" & a4
Range(a11).Select
a5 = Cells(a4, 1)
a6 = Cells(a4, 2)
a10 = Cells(a4, 4)
a13 = Cells(a4, 3)
a14 = Cells(a4, 5)
a15 = Cells(a4, 6)
Workbooks(a2).Activate
Sheets("Перечень").Select
For a7 = 2 To st
a12 = "A" & a7
Range(a12).Select
If Cells(a7, 1) = a5 Then GoTo 1
2
Next a7
Workbooks("Протокол.xls").Activate
Sheets("Цены").Select
Next a4
 
Workbooks(a2).Activate
Sheets("Перечень").Select
 
MsgBox "Цены Заменены"
GoTo 3
1
Cells(a7, 3) = a6
Cells(a7, 4) = a13
Cells(a7, 5) = a10
Cells(a7, 8) = a14
Cells(a7, 7) = a15
 
GoTo 2
 
3
 
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы