首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VBA中的多条件过滤器(不等于)

问VBA中的多条件过滤器(不等于)
EN

Stack Overflow用户
提问于 2017-09-26 21:19:27
回答 2查看 1.5K关注 0票数 0

我正在使用下面的代码在蓝棱镜中筛选多标准的excel。但是我不能过滤不等于场景的多个条件。

代码语言:javascript
复制
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

请帮我调整一下脚本

EN

回答 2

Stack Overflow用户

发布于 2017-09-26 21:53:33

我几乎可以肯定,没有过滤器选项来设置“负面清单”。您可以指定一个(正)值列表(这是您的代码目前所做的,为此,您必须将7设置为第三个参数),或者您可以给出最多2个单独的条件(在Excel中,选择“自定义筛选器”来设置它们。

您应该直接在Excel中使用筛选器,并尝试按您所需的方式进行设置。满意后,清除筛选器,录制宏,然后重复筛选。转到VBA编辑器并查看其中的内容。将其转换为C#代码很简单。

但是:

不能通过Excel GUI

按代码( C#或VBA)设置任何筛选

票数 0
EN

Stack Overflow用户

发布于 2017-09-27 07:31:13

我会质疑你到底想做什么。由于您使用的是Blue Prism,因此您应该尝试访问BP集合(VB DataTable)中的底层数据,而不是应用过滤器,后者是供人类进一步操作界面的可视化工具。机器人仍然必须对过滤后的数据做一些事情,并且在循环期间编写代码来处理数据要容易得多。

否则,请使用“Utilities- collection Manipulation”VBO的“Filter Collection Page”来获取经过筛选的集合。

你也是在使用VBA的Split函数,而你应该在VB中使用Split作为字符串的方法。

在“Utilities- Collection Manipulation”VBO(未测试)中尝试此新页面:

代码语言:javascript
复制
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,然后将过滤后的集合取出...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46427707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档