【发布时间】:2014-08-19 12:38:07
【问题描述】:
今天是我在 Excel 中与 VBA 宏作斗争的第一天。我要做的就是指定一列,从中获取不同的值并将它们复制到另一列中,在不同的工作表上找到。我读了很多书,这就是我想出的:
Sub TestS()
Dim lastRow As Long
lastRow = Worksheets(3).Range("A" & Rows.count).End(xlUp).Row
Worksheets(3).Range(Cells(3, 1), Cells(lastRow, 1)).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Worksheets(2).Range("A3"), Unique:=True
End Sub
lastRow 当前指向正确的位置,但出现错误:
运行时错误 1004 提取范围的字段名称缺失或无效。
显然语法有问题,但我尝试了许多不同的方法,但都没有奏效。
【问题讨论】:
-
对我来说没问题 - 究竟是什么错误?
-
Run-time error 1004 The extract range has a missing or invalid field name. -
顺便说一句,
CopyToRange:=Worksheets(2).Range("A3")意味着它将从 A3 开始,它将复制所有唯一元素,程序在指定列中找到了吗? -
否 - 这意味着它会将工作表 3 A 列中的唯一项目复制到工作表 2 中的
A3 -
在这种情况下,如何指定从 A3 开始将它们复制到 sheet2 的 A 列中,以便第一个元素在 A3 中,第二个在 A4 中,依此类推?