gpt4 book ai didi

vba - 循环中的自动过滤器第一次运行缓慢,然后快速运行?

转载 作者:行者123 更新时间:2023-12-04 21:03:59 25 4
gpt4 key购买 nike

须知 :

  • 从这里交叉邮寄:
    http://www.mrexcel.com/forum/excel-questions/843474-visual-basic-applications-why-does-autofilter-loop-run-slowly-first-time-then-rapidly-after.html
  • Excel 2010
  • 被过滤的第二个文本文件类似于第一个 - 都使用每个
    Excel 工作表中除一行外的行并覆盖 33 列。 (第三
    一个要小得多,看到它需要更短我并不感到惊讶
    时间)
  • 如果需要,我有完整的宏可用,但发布
    指导方针尽量避免发布不必要的代码

  • 我想要完成的 :
  • 理解并解决为什么下面的代码部分,自动过滤器,
    在第一个循环上运行需要 25 分钟,但需要的时间要少得多(10
    秒)关于什么应该是类似的第二个循环以及何时完成
    手动(也大约 10 秒)

  • 到目前为止我做了什么 :
  • 使用计时器来观察代码段执行所需的时间
    循环的每次迭代。
  • 第一次迭代需要 25 分钟
  • 第二次迭代需要 10 秒
  • 第三次迭代耗时 0 秒(不足为奇,见上文)

  • 非常感谢您的帮助,如果我能提供更多有用的信息,请告诉我。我尽量做到简洁但内容丰富。
    Double1 = Now 'Delete Me        'Filter and delete dates before cutoff
    Long1 = Application.CountA(.Columns(8))
    Set Range1 = .Range(.Cells(1, 8), .Cells(Long1, 8))
    With Range1
    .AutoFilter Field:=1, Criteria1:="<" & DateSerial(2012, 10, 1) 'DateSerial uses (Year, Month, Day)
    .Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
    End With
    Double2 = Now 'Delete Me

    最佳答案

    只要您不介意将结果复制到新工作表,使用 ADO 而不是自动过滤器应该会给您更一致的时间。

    添加对“Microsoft ActiveX Data Objects 2.8 Library”的引用,然后尝试此代码(替换为适当的工作表和列名;记住在 SELECT 语句中的工作表名称后保留 $ 符号):

    Dim cn As ADODB.Connection
    Set cn = New ADODB.Connection

    With cn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=" & ThisWorkbook.FullName & ";" & _
    "Extended Properties=""Excel 12.0 Macro;HDR=YES;IMEX=1"";"
    .Open
    End With

    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset

    rs.Open "SELECT * FROM [Sheet1$] WHERE [DateToCheck] >= #10/01/2012#", cn

    Dim fld As ADODB.Field
    Dim i As Integer

    i = 0
    With Worksheets("Sheet2")
    .UsedRange.ClearContents

    For Each fld In rs.Fields
    i = i + 1
    .Cells(1, i).Value = fld.Name
    Next fld

    .Cells(2, 1).CopyFromRecordset rs
    .Cells.Columns.AutoFit
    End With

    rs.Close
    cn.Close

    关于vba - 循环中的自动过滤器第一次运行缓慢,然后快速运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29153697/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com