Вопрос № 149101: Подскажите, пожалуйста! Мне в макрос надо ввести переменную или цикл ?? Этот мак работает, как мне надо, но не могу ж я его 71 раз(число подразделений.) повторить. Разбиение общей ведомости на отдельные для каждого цеха Sub May() ...
Вопрос № 149.101
Подскажите, пожалуйста! Мне в макрос надо ввести переменную или цикл ?? Этот мак работает, как мне надо, но не могу ж я его 71 раз(число подразделений.) повторить.
Разбиение общей ведомости на отдельные для каждого цеха Sub May()
Selection.AutoFilter Field:=5, Criteria1:="ВРХЛ" Cells.Select Range("D2").Activate With Selection .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0
.ShrinkToFit = False .MergeCells = False End With Selection.Copy Workbooks.Add Range("A1").Select ActiveSheet.Paste Selection.Rows.AutoFit Selection.Columns.AutoFit Application.CutCopyMode = False ActiveWorkbook.SaveAs FileName:="D:ВРХЛ.xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ Crea
teBackup:=False ActiveWindow.Close End Sub
Приложение:
Отправлен: 31.10.2008, 13:05
Вопрос задала: Iris (статус: 1-й класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Шичко Игорь
Здравствуйте, Iris! В Вашей ситуации можно сделать следующее: На отдельном листе создать список подразделений и разместить их к примеру a1...a71 Далее добавляем код:
Sub May()
Dim ved As String Dim i As Integer Dim Sheet, Sheet_1 As Object Set Sheet = ThisWorkbook.Sheets("Лист3") '' Лист с названиями подразделений Set Sheet_1 = ThisWorkbook.Sheets("Лист1") ''Лист с ведомостью i = 1 While Sheet.Range("a" + CStr(i)).Value
> "" ved = Sheet.Range("a" + CStr(i)) Sheet_1.Select Cells.Select Selection.AutoFilter Field:=5, Criteria1:= ved .....
''Код Вашего макроса только изменить: ActiveWorkbook.SaveAs FileName:="D:" & ved & ".xls", FileFormat:=xlNormal, _ Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _ ...
i = i + 1 Wend
End Sub
Ответ отправил: Шичко Игорь (статус: Студент)
Ответ отправлен: 31.10.2008, 14:53
Как сказать этому эксперту "спасибо"?
Отправить SMS
#thank 149101 на номер 1151 (Россия) | Еще номера >>
Вам помогли? Пожалуйста, поблагодарите эксперта за это!
Оценка за ответ: 5
Скажите "спасибо" эксперту, который помог Вам!
Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
на короткий номер 1151 (Россия)
Номер ответа и конкретный текст СМС указан внизу каждого ответа.
* Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи.
(полный список тарифов)
** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
*** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.