Tag: autofilter

从窗体控件更改为ActiveX时,“范围类的自动过滤方法失败”

我正在使用Excel 2013,并将下面的代码放在窗体控件DropDown / ComboBox: Private Sub ComboBox2_Change() Dim Issuer As String Dim FirstRow As Long Dim LastRow As Long Dim LastCol As Long Dim ws1 As Worksheet Set ws1 = Worksheets("Data") Issuer = ws1.Range("IssuerNum").Value If Issuer = "All" Then ws1.ListObjects("Table1").Range.AutoFilter _ Field:=1, Criteria1:="<>", Operator:=xlFilterValues LastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row FirstRow = ws1.Cells(2, 1).Row Else ws1.ListObjects("Table1").Range.AutoFilter _ […]

在Autofilter criteria1 vba中使用variables

我一直在面对一个非常恼人的问题,在Excel 2013 VBA中使用Autofilter criteria1参数时,我似乎无法解决这个问题。 我发现这个链接,但它不适合我 基本上我只是想传递一个variables到像下面的criteria1参数。 For Each Site In Worksheets("Results").Range("A2:A200") With Worksheets("2G Cell Data") lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row .Range("A1:O" & lastRow).AutoFilter Field:=Column2GSiteName, _ Criteria1:="=*" & Site & "*", Operator:=xlAnd End With Next Site 没有声明为variables“网站”。 结果是filter将过滤符合“Equals”符号“*”的列。 我注意到,如果我直接分配一个string的variables,并把它的标准参数,它工作正常,所以我试图使用CSTR转换为stringvariables首先,仍然没有工作。 *更新:我发现下面的代码来过滤我所需要的: For Each Site In Worksheets("Results").Range("A2:A200") With Worksheets("2G Cell Data") lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row .Range("A1:O" & lastRow).AutoFilter Field:=Column2GSiteName, […]

代码使用多个条件过滤值

我正在制作一个小程序。 在主表上,有两个combobox。 我正在尝试做的,如果我从每个combobox中select值,它会过滤数据。 但是我面临一个小问题。 我想在这两个combobox中的所有值,并select该值时,不应筛选该列。 到目前为止,我的代码是这样的: Sub submit() Dim ws As Worksheet, tbl As ListObject, rng As Range Set ws = Sheets("Graphical Summary") Set tbl = ws.ListObjects("Table5") Set rng = tbl.DataBodyRange With tbl .Range.AutoFilter Field:=1 .Range.AutoFilter Field:=3 End With With rng If Sheets("Graphical Summary").ComboBox1.Value = "All" Then .AutoFilter Field:=2, Criteria1:=Sheets("Graphical Summary").ComboBox2.Value If Sheets("Graphical Summary").ComboBox1.Value <> […]

自动筛选和显示基于2列xlOR标准的行?

我正在寻找显示行列L =“ABC”,以及显示行AA列<>“DEF”的行。 我试过了, Cells.AutoFilter Field:=12, Criteria1:="ABC", Operator:=xlOr, Field:=28, Criteria1:="<>DEF" ,但似乎这只显示行的L列是“ABC”。 但是,我想要显示其列L是“ABC”,或者列AA不是“DEF”的行的联合。 我在哪里做错了?

Excel和macros – 使用数据validation进行自动筛选

我是使用数据validation自动筛选,下面的代码工作,如果我有在同一电子表格中的数据。 但是,我有不同的工作表中的数据,我希望他们根据我创build的数据validation列表上的select进行筛选。 有一些帮助,请让我知道如何解决这个问题。 提前致谢! Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range If Target.Address = "$C$2" Then Set r = Me.AutoFilter.Range If Len(Trim(Target.Value)) > 0 Then r.AutoFilter Field:=1, Criteria1:=Range("C2").Value Else r.AutoFilter Field:=1 End If End If End Sub

运行时错误6 – 溢出,variables设置为长

我遇到问题执行过滤数据的复制粘贴。 如果过滤字段的结果为0或大于1,则我的代码不会遇到错误。但是,如果filter后有1个可见logging,则会显示运行时错误6。 请参阅下面的代码: Dim wsDue As Worksheet Dim wsTarget As Worksheet Dim y As Long Dim x As Long x = Range("A65536").End(xlUp).Row Range("A1").AutoFilter Field:=2, Criteria1:=Array("Yes"), Operator:=xlFilterValues Set wsDue = Worksheets("Due") Set wsTarget = Worksheets("Target List Consolidated") y = wsDue.Range("B" & wsDue.Rows.Count).End(xlUp).Row If wsDue.Range(wsDue.Cells(2, 2), wsDue.Cells(y, 2)).SpecialCells(xlCellTypeVisible).Count > 1 Then wsDue.Range("B2:B" & x).Copy wsTarget.Range("A65536").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, […]

在Excel VBA中创build多字段searchfunction

我需要在VBA中build立一个链接的searchfunction,在将数据input到给定的search字段后,它也会自动更新。 我已经能够用下面的代码部分成功地完成这个工作: 自动filtersearch – 在标准模块中 码: Sub FilterTo1Criteria() With Sheet3 If Range("A3") <> vbNullString Then .AutoFilterMode = False .Range("A6:J1015").AutoFilter .Range("A6:J1015").AutoFilter Field:=1, Criteria1:=Range("A3") Else Selection.AutoFilter End If End With End Sub 工作表更改/自动更新 – 这是在工作表模块 码: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address = "$A$3" Then Application.EnableEvents = False FilterTo1Criteria Application.EnableEvents = True End If End […]

VBA – 自动filter创build附加条件

在VBA上创build自动filter时遇到问题,无法在网上解决问题。 我试图根据条件(>数字)自动筛选数据表。 然而,当我运行我的代码时,我可以看到VBA已经添加了一个额外的条件“开始(空白)”,除了我所需的条件大于“x” ActiveSheet.AutoFilterMode = False rng.AutoFilter Field:=4, Criteria1:=">" & VolumeMin.Value, _ Operator:=xlAnd rng.AutoFilter Field:=3, Criteria2:=">" & MarketCap.Value _ , Operator:=xlAnd End Sub 有人能指出是什么导致VBA创造这个额外的不受欢迎的条件? 谢谢

VBA代码更新自动filter,无需重新申请

用VBA更新表时,有没有办法刷新自动filter而无需手动重新应用? 比方说,我在A1中有一个值作为表1第1列的filter。当我清除A1中的内容时,VBA是否可以自动清除第1列中的filter而不重新执行代码? 或者,如果我更新A1的值,有没有办法让column1的filter自动更新? 我努力了 Sub Name() ActiveSheet.AutoFilter.ApplyFilter End Sub 和 Sub Name(ByVal Target As Range) Sheets("Sheet1").AutoFilter.ApplyFilter End Sub 和 Sub Name(ByVal Target As Range) With ActiveWorkbook.Worksheets("Sheet1").ListObjects("Table1") .AutoFilter.ApplyFilter End With End Sub 来自各种来源。 我确保代码被embedded到filter模块的同一张表中,但是我似乎仍然在做一些错误的…任何帮助将不胜感激! 链接到来源: https://www.extendoffice.com/documents/excel/4180-excel-refresh-filter-automatically.html https://superuser.com/questions/1004207/macro-for-reapply-filter-on-excel-2016 https://superuser.com/questions/249758/how-to-i-auto-refresh-an-excel-auto-filter-when-data-is-changed

Excel VBA如果满足三个值,或者三个值之一为空,则删除行

这里是克里斯! 本周早些时候,我发布了一个关于代码的问题,如果不同列(同一行)中的三个单元格符合某个文本值条件,那么这个代码就是要删除一行。 在这种情况下,所有三个单元的文本值是“PURGE”,不区分大小写。 该方法是search一个列(在这种情况下,D),find满足search条件的第一个值,然后偏移到下一个指定的列以validation是否存在以下值标准来满足。 我今天的问题是,如何指定我接受的标准之一是一个空白值? 我想修改我的代码,例如,在第4列(D)中search“PURGE”,如果列5(E)是空白的(无),列6(F)是“PURGE”,则删除那一行。 我将张贴汤姆帮助我的一个好伙伴的代码。 此外,我将复制和移动代码,以满足search条件不同的条件。 我可能还想编辑代码以接受多个空白单元格值作为删除条件。 让我知道,如果有什么办法可以让我的问题更清楚,或者如果已经有一个职位的答案,我需要我找不到! 非常感谢大家,你们在这里的时间意味着比我能用文字写的更多! -克里斯 这是我得到的: Option Explicit Sub DeleteRows() Dim wbk As Workbook Dim wsh As Worksheet Dim strPath As String, strFile As String, strFind As String, firstAddress As String Dim x As Range, y As Range, z As Range Dim DelRng As Range 'searches directory for […]