我觉得你for j= 15 to c这一句有点问题,c=arr.columns.count, 如果c=35,那这个循环只有20次,打不到你想循环35次的效果,我重写了下
Function fenbu(arr As Range) As String
c = arr.Columns.Count
r = arr.Row
For j = arr.Column To c + arr.Column - 1
For k = 1 To 24
If Val(Cells(r, j)) - Val(Cells(k, 3)) = 0 Then
fenbu = fenbu + Str(Cells(r, j)) & ","
Exit For//找到一个相同就退出第二个循环,继续第一个循环,不然就会有重复的值出现了
End If
Next
Next
If Right(fenbu, 1) = "," Then fenbu = Left(fenbu, Len(fenbu) - 1)//最后把多余","去掉
End Function
这个函数写好后你要放到一个模块里才能被作为公共函数调用,比如=fenbu(F1:G1)这种调用