【问题标题】:vba macros advancedfiltered method is not working properlyvba 宏高级过滤方法无法正常工作
【发布时间】:2012-12-19 11:36:00
【问题描述】:

我正在使用 VBA 宏。使用高级过滤器方法我试图将唯一记录复制到其他单元格。它在一个代码和行数更少的模块中运行良好。

但是相同的高级过滤方法在另一张表中不起作用。没有数据被复制,它只是在 Excel 表的左角显示提取。

基本上我使用高级过滤方法将唯一记录从一列复制到另一列

请您帮忙纠正高级过滤选项中的错误。

Set rng = ws.Range("A1:A" & lastrow)

Set rng1 = ws.Range("B1")



rng.AdvancedFilter Action:=xlFilterCopy, copytorange:=rng1, unique:=True



End Sub

【问题讨论】:

  • 问题表中lastrow 的值是多少?
  • @tim williams 近 40,000
  • @TimWilliams 有没有办法删除重复项并保留 clolumn 中的唯一值
  • 您是否尝试过数据> 删除重复项?
  • @TimWilliams:是的,它试过了。它为我提供了解决方案

标签: vba filter copy


【解决方案1】:

您的subroutine 似乎工作正常。能否请您录制一个宏,看看您的sub's LastRow 和确切的column A data Range rowcount 有什么区别

Option Explicit

Sub advFilterCopy()
Dim ws As Worksheet
Dim rng As Range
Dim rng1 As Range
Dim LastRow As Long

   Set ws = Sheets(2)
   ws.Unprotect
   '--use this if you have a password
   '--ws.Unprotect Password:="urpassword"
   LastRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
   Set rng = ws.Range("A1:A" & LastRow)
   Set rng1 = ws.Range("B1")

   rng.AdvancedFilter Action:=xlFilterCopy, CopyToRange:=rng1, Unique:=True
   ws.Protect    '--user password if reqiured
End Sub

输出:

【讨论】:

  • 您好,我查过了。您能否检查一下近 40k 行的值。并运行代码几次。 Advancefilter 不适用于许多行
猜你喜欢
  • 1970-01-01
  • 2013-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-14
  • 2013-08-16
相关资源
最近更新 更多