excel vba 编程问题,请高手看看程序错在哪里了,该怎么改?

2025-04-30 02:25:11
推荐回答(1个)
回答1:

我觉得你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)这种调用