函数查找一个值的所有实例并复制,目标单元格不被复制到。
我有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
,它也应该工作…