Добрый день.
К сожалению, знания VBA у меня сильно скудны, а потому написать адекватный макрос не получается.
В общем, требуется автоматическая фильтрация по столбцу H на листе "Лист для выгрузки" в соответствии с листом кодов (код = район).
Затем в трех столбцах из отфильтрованных строк требуется выбрать информацию из столбцов B, С и D (не более 20 строк) и перенести на лист "Опись" в соответствующие графы в столбцах B и C. (Т.е. "Регистрационный номер" в "Регистрационный номер", "ФИО клиента" в "ФИО клиента" и "Адрес доставки" в "Адрес доставки").
И так для каждого из кодов: отфильтровываем столбец H по коду, если что-то есть, то оно нужные столбцы переносятся на другой лист. Проблема в том, что в случае, если фильтр ничего не находит, то вся информация из столбцов переносится на другой лист и с этим ничего не сделать.
Затем фильтры сбрасываются и вся информация по столбцам переносится в "Журнал на сайт" (вот с этим я вроде справился).
Заранее спасибо за помощь!
К сожалению, знания VBA у меня сильно скудны, а потому написать адекватный макрос не получается.
В общем, требуется автоматическая фильтрация по столбцу H на листе "Лист для выгрузки" в соответствии с листом кодов (код = район).
Затем в трех столбцах из отфильтрованных строк требуется выбрать информацию из столбцов B, С и D (не более 20 строк) и перенести на лист "Опись" в соответствующие графы в столбцах B и C. (Т.е. "Регистрационный номер" в "Регистрационный номер", "ФИО клиента" в "ФИО клиента" и "Адрес доставки" в "Адрес доставки").
И так для каждого из кодов: отфильтровываем столбец H по коду, если что-то есть, то оно нужные столбцы переносятся на другой лист. Проблема в том, что в случае, если фильтр ничего не находит, то вся информация из столбцов переносится на другой лист и с этим ничего не сделать.
Затем фильтры сбрасываются и вся информация по столбцам переносится в "Журнал на сайт" (вот с этим я вроде справился).
Заранее спасибо за помощь!
Код |
---|
Sub Макрос1() Sheets("Лист для выгрузки").Select ActiveSheet.Range("$A$1:$I$1000").AutoFilter Field:=8, Criteria1:= _ "40262563000, г. Санкт-Петербург" Range("B2").Select Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(19, 1)).Select Selection.Copy Sheets("Опись").Select Range("B27:C46").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Лист для выгрузки").Select Range("D2").Select Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(19, 0)).Select Selection.Copy Sheets("Опись").Select Range("E27:E46").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ' Далее следует то же самое для других кодов и районов: ' Sheets("Лист для выгрузки").Select ActiveSheet.Range("$A$1:$I$1000").AutoFilter Field:=8, Criteria1:= _ "40263561000, г. Санкт-Петербург" Range("B2").Select Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(19, 1)).Select Selection.Copy Sheets("Опись").Select Range("B63").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Лист для выгрузки").Select Range("D2").Select Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(19, 0)).Select Selection.Copy Sheets("Опись").Select Range("E63").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ' ' И т.д. Заканчивается переносом в журнал: ActiveWindow.ScrollRow = 1 ActiveWindow.ScrollColumn = 1 Sheets("Лист для выгрузки").Select ActiveSheet.Range("$A$1:$I$1000").AutoFilter Field:=8 Range("A2:G200").Select Selection.Copy Sheets("Журнал на сайт").Select Range("B2:H200").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End Sub |