2013-12-06 4 views
0

Я новичок в . Мне нужен кто-то с большим опытом, чтобы смотреть на это, как за 4 секунды, чтобы обучить меня. :)VBA Если ячейка равна «» Имя ", то вроде

Моя проблема заключается в первой части это хорошо (как показано ниже). на основе имен в ячейке D5, (например, Дон или Кит) Я хочу сортировки произойти. для этой первой части она работает.

эта часть работы

Sheets("Input Tab").Select 
Range("D5").Select 
If Selection.Value = "Don" Then 

Sheets("Cost Center Comparison").Range("$A$5:$P$815").AutoFilter Field:=2, Criteria1:=Array("10" _ 
    , "11", "12", "13", "14", "15", "20", "21", "30", "51", "52", "54", "55", "57", "58", "60"), Operator:=xlFilterValues 

вопрос w с ElseIf здесь

Затем я хочу вернуться к той же самой ячейке (D5), чтобы постоянно ее оценивать. Если имя изменится, будет фильтр.

ElseIf Sheets("Input tab").Range("D5").Selection.Value = "Job/Bob" Then 
Sheets("Cost Center Comparison").Range("$A$5:$P$815").AutoFilter Field:=2, Criteria1:=Array("12"), Operator:=xlFilterValues 

ElseIf по какой-то причине не работает, и я не понимаю синтаксис достаточно хорошо, чтобы понять, почему. Любая помощь?

+2

Что именно вы имеете в виду под «не работает»? Компьютер взрывается? Неверный ответ? Сообщение об ошибке (если да, какое сообщение)? и т. д. Также я вижу, где ваши фильтры кода, но я не вижу места, где он сортируется. –

ответ

1

Нечто подобное могло бы работать лучше для вас ...

Sub FilterOnName()  
    Dim nm As String, arr As Variant  
    nm = ActiveWorkbook.Sheets("Input Tab").Range("D5").Value 

    Select Case nm 
     Case "Don": arr = Array("10", "11", "12", "13", "14", "15", _ 
           "20", "21", "30", "51", "52", "54", _ 
           "55", "57", "58", "60") 

     Case "Job/Ron": arr = Array("12")   
     'Case Else: define a default here if no match 
    End Select 

    If Not IsEmpty(arr) Then   
     ActiveWorkbook.Sheets("Cost Center Comparison").Range("$A$5:$P$815") _ 
       .AutoFilter Field:=2, Criteria1:=arr, Operator:=xlFilterValues   
    End If   
End Sub 
+1

Тим Уильямс. Вы джедай из excel vba, и я хочу учиться у ваших ног. Это то, что мне нравится, и мне нужно учиться. Как мне стать лучше. Какие ресурсы доступны, чтобы стать vba jedi. Я хочу, я финансовый аналитик, я весь день работаю, и, к сожалению, мне не хватает навыков VBA. Есть предположения? –

+0

Я бы порекомендовал «учиться, делая», но мне также нравятся книги - начнется с чего-то вроде «Excel Power Programming» Джона Уокенбаха: это было мое первое вступление в VBA обратно, когда (Excel для Windows 95!) И просматривайте здесь, на SO, конечно. –

+0

@ user3075813, Нажмите на имя Тима над вашим комментарием. Следуйте ссылкам на странице своего профиля, чтобы узнать, как он ответил на другие вопросы. Тим фиксирует здесь много кода. Кроме того, [Doug Glancy] (http://stackoverflow.com/users/293078/doug-glancy), [mehow] (http://stackoverflow.com/users/2140173/mehow), [Студент Гэри] (http: //stackoverflow.com/users/2474656/garys-student), [KazJaw] (http://stackoverflow.com/users/2143262/kazjaw) и электростанция, которая является [Siddharth Rout] (http://stackoverflow.com/пользователей/1140579/Сиддхарт-разгром). Кто бы я случайно пропустил? – tbur

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