函数查找一个值的所有实例并复制,目标单元格不被复制到。

我有2个列,第一个是我想检查的值的列表,第二个是对应于第一列的描述。 第一列可以在第二列中具有不同描述的多个相同值的实例。 我想打印出横向排列的所有不同的描述。 我有这个代码,我可以告诉通过使用debug.print引用正确的单元格,但单元格不会复制到目标单元格。

Function MyFind(lookup As String, FindRng As Range) Dim curcell As Range Dim findcount As Integer Set curcell = Application.Caller findcount = 1 For Each celltocheck In FindRng If celltocheck = lookup Then Debug.Print celltocheck.Address Debug.Print celltocheck.Offset(0, 1).Address Debug.Print celltocheck.Offset(0, 1).Value Debug.Print curcell.Offset(0, findcount).Address celltocheck.Offset(0, 1).Copy Destination:=curcell.Offset(0, findcount) findcount = findcount + 1 Else End If Next End Function 

假设要检查的数据(使用双精度)在A1:A27 ,而在B1:B27 (你想要得到的数值)中输出的描述可以使用:

 =IFERROR(LARGE(ROW(A1:$A$27)*($A1:$A$27=$A1),COUNTIF($A1:$A$27,$A1)-COLUMN(A:A)+1),"") 

这是一个数组公式,并且必须用Ctrl + Shift + Enter确认

然后复制到左侧,然后向下…但是如果有的话,你将获得双打…根据需要更改范围(跳过+1以第二个值开始)

如果你改变你的function,并Set curcell = Selection ,它也应该工作…