1

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

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

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

您能否帮助纠正高级过滤器选项中的错误。

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

Set rng1 = ws.Range("B1")



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



End Sub
4

1 回答 1

0

你的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

输出:

在此处输入图像描述

于 2013-01-05T11:40:03.073 回答