Это, наверное, простой вопрос для тех, кто знаком с VBA, но как новичок, я полностью опустошен.Комбинация If Then и Do Loop (я думаю)
У меня есть два листа, один из них - это исходные данные, которые я уже использую для того, чтобы вытащить из проекта без проблем. Другой - выходной лист. На листе с данными у меня есть 3 столбца (A, E и H). В столбце A есть список задач, столбец E имеет описание, а столбец H имеет финансовый год и квартал.
На выходной странице у меня 10 лет финансовых лет.
Что я хочу сделать, это сканировать задачи для определенного типа задач, а затем, как только я нахожу эту задачу, я выводим описание в соответствующий соответствующий финансовый год.
Я чувствую, что это должно быть сочетание DO Loop и If If, но то, что я пытался, не работает. Ниже я начал и знал довольно быстро, что это не сработает.
Do Until Worksheets("Project Data").Range("A1").Offset(Row, 0).Value = Empty
If Worksheets("Project Data").Range("A1").Value = "Task example*" Then
If Worksheets("Project Data").Range("H1") = "FY15*" Then
If Worksheets("Project Data").Range("E1") = "" Then Worksheets("Output").Range("C5") = 1
ElseIf Worksheets("Project Data").Range("E1") = "description 1*" Then Worksheets("Output").Range("C5") = 2
ElseIf Worksheets("Project Data").Range("E1") = "description 2*" Then Worksheets("Output").Range("C5") = 3
End If
If Worksheets("Project Data").Range("H1") = "FY16*" Then
If Worksheets("Project Data").Range("E1") = "" Then Worksheets("Output").Range("C6") = 1
ElseIf Worksheets("Project Data").Range("E1") = "description 1*" Then Worksheets("Output").Range("C6") = 2
ElseIf Worksheets("Project Data").Range("E1") = "description 2*" Then Worksheets("Output").Range("C6") = 3
End If
Loop
Как я уже говорил, это не работало по нескольким причинам. Любая помощь будет принята с благодарностью! Заранее спасибо!
Редактировать: добавление некоторых фиктивных данных. Не могу понять, как добавить вложение и не иметь рейтинга, чтобы добавить изображение, поэтому у меня есть списки ниже, надеюсь, это работает. Извините, это уродливо!
Исходные данные
- Колонка A (задача)/Колонка E (описание)/Колонка H (FYQ)
- Пример/А/FY15Q4
- Встреча/пустой/FY17Q1
- тестирование/пустой/FY16Q3
- Пример/B/FY15Q3
- Пример/B/FY16Q1
- Встреча/пустой/FY15Q2
- тестирование/пустой/FY16Q3
- Пример/С/FY16Q2
Выходные данные
- FY15/A/B
- FY16/B/C
Может быть до 6 по каждой строке финансового года
Я думаю, что моя логика может быть выключена. Другая проблема, о которой я забыл упомянуть, заключается в том, что у меня будет несколько входных данных для каждого FY, поэтому я не хочу просто перейти к следующей строке, пока не будет выполнен поиск всех FY. Я также пытаюсь понять, есть ли способ избежать выполнения кода для каждого FY, как я уже говорил выше. – sfowler38
В точку FY вы можете объявить целое число (financialYear) и просто иметь Range («H1»). Value = «FY» и financialYear & «*». Затем вы можете добавить 1 к вашему фискальному целю во время цикла, чтобы он каждый раз переходил к следующему году. Если вы можете опубликовать некоторые фиктивные образцы данных с листа, который вы ищете, я могу попытаться посмотреть его глубже. Надеюсь, я помогу. – legendjr
Вы определенно помогаете! Попытка добавить некоторые фиктивные данные прямо сейчас. – sfowler38