2014-09-19 2 views
0

Я пытаюсь написать сценарий, который будет делать несколько вещей. Я использовал макрос для создания основ, но я пытаюсь найти код для остальных. У меня есть лист из 15 столбцов и много строк (этот рабочий лист создается другой программой и будет меняться каждый раз, когда я его запустил). Я должен пройти через это и удалить некоторые вещи. Мне нужен скрипт, который будетКопировать автофильтрованные ячейки

  1. Delete Row 2 (это всегда бесполезно) - Done
  2. Дайте колонке N A ширина 10 - Done
  3. Сделать столбец D число с 5 цифр - Done
  4. Set автофильтрами - Done
  5. Найти все строки, в которых столбец O содержит либо пустой или «U» --Done
  6. Вырезать и вставить эти строки из исходного листа в новый в той же книге
  7. автофильтра Колонка M в порядке от наименьшего к наибольшему
  8. Есть всплывающее окно с просьбой, что максимум
  9. Вырезать и вставить любую строку, в которой столбец М содержит большее количество, чем вы вошли во всплывающем окне, после первой пасты ,
  10. Фильтр колонны К, чтобы показывать только те строки, в которых столбец К содержит пустой
  11. Поместите те, в порядке по дате, колонка N
  12. вырезать и вставить, как и раньше любой строки, где столбец Н содержит дату, с до первого дня месяца 6 месяцев назад (например, сегодня, это будет 1 марта 2014 года)
  13. Удалите все столбцы, кроме D и E, на втором листе.

У меня есть код для всех действий, мне просто нужно получить всплывающие диалоговые окна для max (шаг 8 выше) и для даты (шаг 12 выше). Я использовал 5 разных скриптов. Первая делает шаги форматирования в начале (1-4). Второй выполняет поиск «U» (5-6). Третий выполняет поиск Max (7-9), четвертый - окончательный поиск (10-12). Пятый выполняет очистку на втором листе (13).

Я бы предположил, что когда я получу диалоговые окна, я бы назначил ответ, заданный в диалоговых окнах, переменным и использовал его в коде? Как я могу это сделать?

+0

Добро пожаловать в StackOverflow. Что вы уже пробовали? SO не является бесплатным сервисом разработки программного обеспечения, но если вы застряли в определенном месте в поиске решения, мы могли бы помочь вам намного лучше, если бы вы продемонстрировали свой прогресс до сих пор. –

ответ

1

вы просите здесь много шагов, мой совет начать, чтобы разбить ваш код. У вас есть 13 отличных вещей, которые вы пытаетесь сделать, я буду писать каждый из них по отдельности. Мне кажется, что на основе вашего кода вы используете макрорекордер, чтобы получить нужный результат, а затем перепроектировать то, что производит макрорекордер, и VBA для вас.

Итак, вот быстрый шаг, который может вас заинтересовать.

Я хотел бы создать главный класс

Sub Main() 
call Macro4() 
End Sub 


Sub Macro4() 
' 
' Macro4 Macro 
' 
' 
'Delete Row 2 
Rows("2:2").Select 
Selection.Delete Shift:=xlUp 
Range("N6").Select 
'Show full dates 
Columns("N:N").EntireColumn.AutoFit 
'Engage Autofilter 
Selection.AutoFilter 
'Make the Account Number format 5 digits 
Columns("D:D").Select 
Selection.NumberFormat = "00000" 
'Show All in Column O (single status) to be deleted 
ActiveWorkbook.Worksheets("50100").AutoFilter.Sort.SortFields.Clear 
ActiveWorkbook.Worksheets("50100").AutoFilter.Sort.SortFields.Add Key:=Range(_ 
    "O1:O4222"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ 
    xlSortNormal 
With ActiveWorkbook.Worksheets("50100").AutoFilter.Sort 
    .Header = xlYes 
    .MatchCase = False 
    .Orientation = xlTopToBottom 
    .SortMethod = xlPinYin 
    .Apply 
End With 
Range("O5").Select 
ActiveSheet.Range("$A$1:$O$10000").AutoFilter Field:=15, Criteria1:="=U", _ 
    Operator:=xlOr, Criteria2:="=" 
End Sub 

для того, чтобы помочь вам больше мне нужно имя вкладки для вас листы могли бы вы опубликовать копию, и я буду смотреть на завтра.

+0

Поскольку я просто хотел сделать как можно больше, я сделал несколько разных (1-5, 7, 10-11, 13), и все, что мне нужно, чтобы выяснить, как это сделать и вставьте вещи, показанные автофильтром, в новый рабочий лист и чтобы всплывающее окно запросило дату и макс. Тогда было бы реалистично объединить их все вместе? –

Смежные вопросы