根据列值进行过滤

时间:2017-09-19 11:00:23

标签: excel vba excel-vba

我有一张表FC,有这张表,我有R,S和T列填充。 我希望有一个代码,它检查R是否包含“无效”,如果S和t被填充,那么它应该过滤完整的行。

我知道我们可以使用isblank函数来检查单元格是否为空白, 但我很惊讶我如何使用这些条件的过滤功能。任何帮助对我都有帮助。我很震惊,我可以继续使用vba代码。为没有代码而道歉。

5 个答案:

答案 0 :(得分:2)

您必须以某种方式指定最后一行:

Microsoft.AspNet.WebApi.OwinSelfHost

Dim lastRow, i As Long For i = 1 To lastRow 'specify lastRow variable If InStr(1, LCase(Range("R" & i).Value), "invalid") > 0 And Range("S" & i).Value = "" And Range("T" & i).Value = "" Then 'do work End If Next i 条件下,我们会检查您提出的三件事。

答案 1 :(得分:1)

假设Row1是标题行,并且您的数据从Row2开始,在辅助列中,放置下面给出的公式。

此公式将返回True或False,然后您可以根据您的要求使用True或False过滤帮助列。

=AND(R2="Invalid",S2<>"",T2<>"")

如果标题行不同,请相应地调整公式。

答案 2 :(得分:1)

试试这个

IsChecked

编辑:

取消隐藏行。

<TreeView ItemsSource="{Binding Permissions}">
    <TreeView.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Children}">
            <StackPanel Orientation="Horizontal">
                <CheckBox Margin="2" IsChecked="{Binding Value}" />
                <TextBlock Text="{Binding Title}" FontWeight="SemiBold" />
            </StackPanel>
        </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate>
</TreeView>

答案 3 :(得分:1)

sub myfiltering()
'maybe first row always 4
firstrow=4

'last, maybe R column alaways have any entered info, so let us see what is the last
lastrow=cells(65000,18).end(xlup).row

'go ahead
for myrow=firstrow to lastrow
  if cells(myrow,18)="Invalid" and cells(myrow,19)="" and cells(myrow,20)="" then

    Rows(myrow).EntireRow.Hidden = True

  else

    Rows(myrow).EntireRow.Hidden = false

  end if

next myrow

msgbox "Filter completed"
end sub

希望这会对你有所帮助:)。

答案 4 :(得分:0)

为什么你需要这个问题的vba代码?

如果使用if&amp;添加新列,则更简单和公式,以及添加的col中的自动过滤。 U2细胞中的公式可能与此类似。

=if(and(R2="invalid";S2="";T2="");"x";"")

还将autofilter设置为x。 :)