Tag: filter

按照Excel 2010的精确顺序过滤

我试图按照确切的顺序过滤一列数据。 有问题的列中有1649项。 我知道如何做一个先进的filter(非常感谢这个网站),但它有不同的命令。 下面是一个例子。 需要它看起来像这样 311 312 3122 313 当我使用高级filter进行过滤时,它会执行以下操作 311 312 313 3122 有没有办法让它过滤,并按照确切的顺序?

在检查VBA中的重复项之前对URL进行sorting

我正在尝试使用VBA运行几个filter,然后将数据输出到“分析”工作表。 一切工作,因为它应该到目前为止 – 但我现在试图消除URL重复。 If unique_1 <> Sheets(1).Cells(x, 11) Then 上面的代码片段将消除重复,但只有当我已经sorting的URLS(这不是我可以做的数据前期) 我希望我可以用VBA来分类,但是目前还没有能力,而我的眼睛正在杀死我。 任何帮助,将不胜感激! 在此先感谢您的帮助! If Sheets(1).Cells(x, 12) = "X URL" Then If Sheets(1).Cells(x, 9) > 4 And Sheets(1).Cells(x, 9) < 10 Then '//NEED TO SORT URLS HERE FIRST – BEFORE I CAN FIND DUPES// If unique_1 <> Sheets(1).Cells(x, 11) Then O_2 = O_2 + 1 […]

在表中search栏中的值; 如果发现复制前两列值和列标题

我没有使用VBA的经验,但在工作中我被问到解决这个问题的方法。 我有一张表格,里面有这样的数据: 姓名…..date修改 ……. 01/01/13 …… 01/02/13 …….. 01/03/13 乔………… 02/05/13 ………晚 最高date值是应付账单date和(1/05/13)date值是账单更改的date。 我需要search每个date列(1 / 1-1 / 3)和单词“迟到”,如果发现我需要复制并粘贴更改的名称和date和date到另一个工作表。 在这个例子中,我将复制这些值: 乔…….. ……… 13年2月5日13年1月1日 进入另一张纸。 我将不胜感激任何帮助。

从工作表中select特定的列以保存

我正在与我们正在应用多个filter的电子表格上的朋友合作。 第一个filter运行在列M和U上: Sub TokenNotActivated() 'Col H = Laptop – Main 'Col H = Desktop 'Col M = Yes 'Col U = provisioned ThisWorkbook.Sheets(2).Activate ActiveSheet.Range("A2:Z2").Select Selection.AutoFilter Field:=8, Criteria1:="Desktop", Operator:=xlOr, Criteria1:="Laptop – Main" Selection.AutoFilter Field:=13, Criteria1:="Yes" Selection.AutoFilter Field:=21, Criteria1:="provisioned", Operator:=xlFilterValues End Sub 第二个filter对列F起作用,过滤在那里find的每个唯一值 例如 将返回作为约翰,莎拉,弗兰克filter。 此外,如果在运行第一组filter后没有find其中任何一行的行,则会跳过它。 负责这个的代码如下: Sub GetPrimaryContacts() Dim Col As New Collection Dim itm Dim […]

VBA Excel自定义文本filter由两个以上的文本组成

我有一个长表,通常我想通过多个值筛选资产编号(从第4行到第3080行的第一列和第一行)。 Excel自定义文本filter不能过滤两个以上的文本。 我想知道是否有可能过滤两个以上。 我知道这可能在VBA中。 例如,将列A过滤为“85254”,“8782A”和“GH0012”

VBA:计算filter中select不同项目的数量

在Excel中,我在标题上有一个filter,这个filter允许用户select不同的区域,并显示与所选区域相匹配的logging。 我有下面的代码,然后显示在筛选器中select的值: Dim ftrRegion As Filter On Error GoTo stopError Set ftrArea = ActiveSheet.AutoFilter.Filters(2) Set ftrRegion = ActiveSheet.AutoFilter.Filters(1) If ftrRegion.On Then Application.EnableEvents = False Debug.Print ftrRegion.Criteria1 Range("E206").Value = Mid$(ftrRegion.Criteria1, 2) Range("F201").Value = "Region" & " " & Mid$(ftrRegion.Criteria1, 2) Else Range("E206").Value = "" End If 但问题是,如果用户select多个值,整个事情不起作用,所以我想要的是一种方法来计算用户在filter中select的值的数量,如果它只是1然后通过一个if语句应用这个代码。 有人可以请帮忙。

delphi – 确定如果Excel启用筛选器

delphi西雅图,Excel 2013年。我有一个Delphi应用程序,它修改了现有的Excel文件。 如果工作表没有启用行1过滤function(即每列中的filter下拉框),那么我想打开它。 我知道如何打开它。 问题是“打开它”确实是一个切换,所以我需要确定它是否已经打开了,这是我似乎无法做到的。 代码的适用部分是: var aws: ExcelWorksheet; begin … aws := oExcel.ActiveSheet as ExcelWorksheet; if aws.FilterMode[LOCALE_USER_DEFAULT] = False then aws.Cells.Item[1, 1].Rows.EntireRow.AutoFilter; 问题是我的IF语句总是返回FALSE,即使第一行启用了FILTER。 我曾尝试使用msoFalse而不是False,但随后出现“不兼容的types”错误。 请注意,我不想执行任何过滤,我只是想显示下拉菜单,以使用户更容易。 我想我的问题是,我正在检查,看看是否实际上是一个filter,而不是“我是否显示filter下拉列表”,但我不知道如何检查…

在VBAsearch期间没有响应状态

我正在创build一个工作簿,将根据列中的值将数据从源工作表复制并粘贴到多个其他工作表中。 但是,一旦我启动macros,Excel进入一个不响应的状态。 我在4000到500000行的任何地方操作,但只有4列。 当我只有4000行时,它工作得很快(3秒)。 当我有〜30,000行时,Excel进入一个不响应的状态约10秒钟,然后结束。 我没有等待30万行的testing。 我这样做的思想过程就是根据B列中的string对所有数据进行sorting,将列B (包含我正在search的string)的所有列都放入数组中,然后将所有的唯一string另一个arrays。 例如,如果列B在行1-200中保持“search”,并且在行201-500中“创build”,macros将search行和第二个数组(将其称为场景)将最终保持两个值, “search”和“创build”。 在search过程中,我还创build了两个平行数组,它们与Scenario数组对应,该数组将保存该场景的开始和结束行。 之后,我只需循环并行数组中的值,并从源工作表复制/粘贴到其他工作表。 注:sorting工作正常 有没有办法让这个更快? 这是代码:分配数据 Sub AllocateData() Dim scenarioRange As String 'To hold the composite range Dim parallelScenarioName() As String 'Holds the unique scenario names Dim parallelScenarioStart() As Long 'Holds the starting row of the scenario Dim parallelScenarioEnd() As Long 'Holds the ending row of […]

excel vba – 在自动筛选器后select除标题以外的所有过滤行

我试图写一个macros来做以下事情: 从Sheet1中看到我input的数据的A列; 当我在A列的单元格中写入内容时,使用该值来过滤Sheet2; 在完成过滤之后,即使有多个值,也可以将除第二个页面的列标题之外的所有内容复制到第一个页面中。 我试着写这个: Private Sub Worksheet_Change(ByVal Target As Range) Dim KeyCells As Range Set KeyCells = Range("A:A") If Not Application.Intersect(KeyCells, Range(Target.Address)) _ Is Nothing Then copy_filter Target End If End Sub Sub copy_filter(Changed) Set sh = Worksheets("Sheet2") sh.Select sh.Range("$A$1:$L$5943") _ .AutoFilter Field:=3, _ Criteria1:="=" & Changed.Value, _ VisibleDropDown:=False Set rang = sh.Range("$A$1:$L$5943") _ […]

Excel VBA – 自动筛选的行数总是返回1

我目前使用自动filter来筛选两列。 如果自动筛选的结果仅对可见单元格为空,则会添加一个新行。 如果find除标题以外的任何行,则将显示一个MsgBox。 问题是行数总是返回1.我试过重新定义“rng”几个方法无济于事。 Dim ws As Worksheet Dim rng As Range Set ws = Sheets("Scored Items") Worksheets("Scored Items").Activate ws.AutoFilterMode = False With ws .Range("A:D").AutoFilter Field:=1, Criteria1:=AssetBox.Text .Range("A:D").AutoFilter Field:=4, Criteria1:=PartBox.Text Set rng = .Range("A:A").SpecialCells(xlCellTypeVisible) If (rng.Rows.Count = 1) Then 'Add new row based on VBA form Else MsgBox "Item has already been scored" End If […]