2017-09-26 1 views
0

여러 기준에 대한 필터링에서 Blue 프리즘의 아래 코드를 사용하고 있습니다. 하지만 시나리오와 같지 않음에 대한 다중 기준을 필터링 할 수 없습니다. VBA의 다중 기준 필터

Dim wb As Object 
Dim excel as Object 
Dim range as Object 

Try 
wb = GetWorkbook(Handle, Workbook) 
excel = wb.Application 
range = excel.Range(FRange) 

Dim listOfValues as Array 
listOfValues = Split(FCriteria,";") 


wb.worksheets(Worksheet).select 
range.select 
range.Autofilter(FCol,listOfValues,7) 



Success = True 

Catch e As Exception 
    Success = False 
    Message = e.Message 
Finally 
    wb = Nothing 
End Try 

내가 "부정적인 목록"을 설정할 수있는 필터 옵션이 없다는 것을 거의 확신 스크립트

+0

VBA에는'Catch','Exception','Finally' 및'End Try'가 없습니다. – Vityata

+0

이것은 C# 코드 – FunThomas

+0

입니다. Blue Prism에서 전체 컬렉션을 간단하게 필터링 할 수 있습니다. 귀하의 기준에 따라 계산 된 필터 표현식을 작성하십시오. 또는 새 VBO 페이지를 작성할 수도 있습니다. – MacroMarc

답변

0

을 조정 제발 도와주세요. 값의 (양의) 값 목록을 지정할 수 있습니다 (코드가 지금까지 수행 한 것입니다.이 값은 7을 세 번째 매개 변수로 설정해야 함). 또는 최대 두 개의 개별 기준을 지정할 수 있습니다 (Excel에서는 "

Excel에서 필터를 직접 재생하고 원하는대로 설정해야합니다. 만족 스럽다면 필터를 지우고 매크로를 기록한 다음 필터링을 반복하십시오. VBA를 편집기와 거기에 무엇이 있는지 C# 코드로이 번역을 간단

그러나 :..

을 어떤 filteri을 설정하는 것은 불가능합니다 Excel GUI를 통해 설정할 수없는 코드 (C#이나 VBA 제외)

0

나는 당신이 무엇을하려고하는지 질문 할 것입니다. Blue Prism을 사용하고 있기 때문에 인간이 인터페이스와 함께 게임을하기위한 시각적 도구 인 필터를 적용하는 대신 BP 컬렉션 (VB DataTable)의 기본 데이터에 액세스하려고해야합니다. 로봇은 여전히 ​​필터링 된 데이터로 무언가를해야 할 것이고 루프 동안 데이터를 진행하는 코드를 작성하는 것이 훨씬 쉽습니다.

그렇지 않으면 'Utilities - Collection Manipulation'VBO의 Filter Collection 페이지를 사용하여 필터링 된 컬렉션을 가져옵니다.

또한 VB에서 Split을 String 메서드로 사용해야 할 때 VBA Split 함수를 사용하고 있습니다.

에 새로운 페이지를 위해 이것을 시도 '유틸리티 - 컬렉션 조작을'(안된) VBO를 :

Dim NewRow As DataRow 
Collection_Out = Collection_In.Clone 

Dim Select_Concat As String 
Select_Concat = "NOT(" & fieldName & " = '" & [String].Join("' OR " & fieldName & " = '", FCriteria.Split(";"c)) & "')" 

For Each parentRow As DataRow In Collection_In.Select(Select_Concat) 
    NewRow = Collection_Out.NewRow 
    For Each c As DataColumn In NewRow.Table.Columns 
     NewRow(c.ColumnName) = parentRow(c.ColumnName) 
    Next c 
    Collection_Out.Rows.Add(NewRow) 
Next parentRow 

NewRow = Nothing 
Collection_In = Nothing 

입력 : Collection_In (수집), fieldName에 (텍스트), FCriteria (텍스트)

출력 : Collection_Out (컬렉션)

먼저 전체 범위를 필터링되지 않은 컬렉션 (이 페이지의 Collection_In이 될 것입니다.)에서 가져온 다음 필터링 된 컬렉션을 꺼내야합니다. ...