Нужна Ваша помощь по ускорению работы макроса. Есть оптовый прайс-лист, где в столбце 7 указана оптовая цена, на которую есть скидка, при условии, если строка не выделена желтым или зеленым цветом. Я написал макрос, который определяет цвет, и на основании полученных данных делает обработку прайс-листа (удаляет строки, столбцы и тд.)
[vba]
Код
Sub patio()
Application.ScreenUpdating = False For i = 5 To ActiveSheet.UsedRange.Rows.Count Cells(i, 11) = Cells(i, 10).Interior.color Cells(i, 12).FormulaR1C1 = "=ROUND(IF(OR(RC[-1]=65535,RC[-1]=9498256),RC[-5]*1.04,RC[-5]),0)" Next i Rows("1:3").Select Selection.Delete Shift:=xlUp ActiveSheet.Range("H:H").Delete Range("G3").Select ActiveCell.FormulaR1C1 = "Опт, с НДС" Range("H3").Select ActiveCell.FormulaR1C1 = "Дилер, с НДС" For i = 5 To ActiveSheet.UsedRange.Rows.Count Cells(i, 11).Select Selection.Copy Cells(i, 8).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next i ActiveSheet.Range("J:K").Delete For i = 5 To ActiveSheet.UsedRange.Rows.Count Cells(i, 7).FormulaR1C1 = "=RC[1]*1.04" Cells(i, 7).Select Selection.Copy Cells(i, 7).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next i ActiveSheet.Name = "бытовая_техника" Application.ScreenUpdating = True End Sub
[/vba]
Исходник (файл с наименованием start) и пример (файл с наименованием finish) прилагаю.
Всем доброго времени суток!
Нужна Ваша помощь по ускорению работы макроса. Есть оптовый прайс-лист, где в столбце 7 указана оптовая цена, на которую есть скидка, при условии, если строка не выделена желтым или зеленым цветом. Я написал макрос, который определяет цвет, и на основании полученных данных делает обработку прайс-листа (удаляет строки, столбцы и тд.)
[vba]
Код
Sub patio()
Application.ScreenUpdating = False For i = 5 To ActiveSheet.UsedRange.Rows.Count Cells(i, 11) = Cells(i, 10).Interior.color Cells(i, 12).FormulaR1C1 = "=ROUND(IF(OR(RC[-1]=65535,RC[-1]=9498256),RC[-5]*1.04,RC[-5]),0)" Next i Rows("1:3").Select Selection.Delete Shift:=xlUp ActiveSheet.Range("H:H").Delete Range("G3").Select ActiveCell.FormulaR1C1 = "Опт, с НДС" Range("H3").Select ActiveCell.FormulaR1C1 = "Дилер, с НДС" For i = 5 To ActiveSheet.UsedRange.Rows.Count Cells(i, 11).Select Selection.Copy Cells(i, 8).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next i ActiveSheet.Range("J:K").Delete For i = 5 To ActiveSheet.UsedRange.Rows.Count Cells(i, 7).FormulaR1C1 = "=RC[1]*1.04" Cells(i, 7).Select Selection.Copy Cells(i, 7).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next i ActiveSheet.Name = "бытовая_техника" Application.ScreenUpdating = True End Sub
[/vba]
Исходник (файл с наименованием start) и пример (файл с наименованием finish) прилагаю.force
Напишите, что нужно получить от прайса (как этот макрос работает)
1. Определить цвет ячейки с ценой (столбец 7) и записать в столбец 11 результат (код цвета) 2. На основании результата формируем свою цену в столбце 12 (если цвет желтый или зеленый, тогда цену из столбца 7 * 1,04, в остальных случаях цену из столбца 7 просто скопировать, результат цены округлить до цеголо. 3. Удалить столбец 8 4. В новый столбец 8 скопировать результат (без формул) столбца 11 5. В столбец 7 записать результат формулы (столбец 8 * 1,04) 6. Удалить столбцы 10, 11 7. Переименовать R3C7 = "Опт, с НДС", R3C8 = "Дил, с НДС" 8. Переименовать активную вкладку = "бытовая_техника_в_наличии"
Напишите, что нужно получить от прайса (как этот макрос работает)
1. Определить цвет ячейки с ценой (столбец 7) и записать в столбец 11 результат (код цвета) 2. На основании результата формируем свою цену в столбце 12 (если цвет желтый или зеленый, тогда цену из столбца 7 * 1,04, в остальных случаях цену из столбца 7 просто скопировать, результат цены округлить до цеголо. 3. Удалить столбец 8 4. В новый столбец 8 скопировать результат (без формул) столбца 11 5. В столбец 7 записать результат формулы (столбец 8 * 1,04) 6. Удалить столбцы 10, 11 7. Переименовать R3C7 = "Опт, с НДС", R3C8 = "Дил, с НДС" 8. Переименовать активную вкладку = "бытовая_техника_в_наличии"force
Сообщение отредактировал force - Суббота, 04.10.2014, 12:50