这是原始语句:
Sub a2()
Dim a As Integer
Dim b As Integer
Dim tj As Boolean
For i = 1 To 13
tj = Cells(i, 1) = 5
If tj = True Then
b = b + 1
End If
Cells(i, 2) = b
Next i
Range("d1") = b
End Sub
觉得不方便,改成自定义函数。
Function aaa()
Dim a As Integer
Dim b As Integer
Dim tj As Boolean
For i = 1 To 13
If tj = True Then
b = b + 1
End If
Cells(i, 2) = b
Next i
aaa = b
End Function
然后这么调用,结果失败。
Sub a1()
Dim i As Integer
Dim tj As Boolean
For i = 1 To 10
tj = Cells(i, 1) = 5
Range("d1") = aaa
Next i
End Sub
主要是条件TJ,tj = Cells(i, 1) = 5这个在自过程为True,但是在模块里无法调用,始终为假。
那位高人帮改改。
谢谢您,我其实是想写个函数。当满足某条件,比如数字从1到20。开始计数,从0开始计数。到5就归0,重新开始计数。求这个计数的数值。
您的代码我试了。运行为0
非常感谢您的指点,
首先这不是我的代码。。这是你自己写的代码,我只是帮你把tj这个变量重新定义了,让他可以在两个模块中传递参数。。。至于你说为什么结果是0.因为b并没有初始化,所以他的初始值是0,而你A列最后一个数值是6,判断的完后tj是false,所以在function过程里得到的结果是Cells(i, 2) = b,b=0,所以结果就是0。。。
本回答被提问者和网友采纳