ExcelVBA 写自定义函数
网友提问:

放大图片

回答网友问题:
我举个例子,sub过程就好比一个知识我学会了,funciton函数就好比我把学会的知识写成一个通用的代码供大家使用。肯定后者难,所以你要先会写前者,才能去研究后者。
我们以你这张表为例

我先写一个过程
Sub shishi()
Set 范围 = Range("A1:A3")
For Each 单元格 In 范围
If 单元格.Value = "a" Then
i = i + 1
If i = 3 Then
Debug.Print 单元格.Offset(0, 1).Value
Exit For
End If
End If
Next
End Sub

然后再写函数 因为你传进来的 A1:A3 他不是字符串,他是单元格范围
所以我们要用 [A1:A3] 或 [D1] 来表示 单元格
像 range("A1:A3") 和 range("D1") 里面传递的是字符串,当然也可以,只是你将来使用函数时,要给它们加双引号,相对麻烦一些。
Function 孙兴华(查什么, 在哪里查, 返回什么, 第几次出现)
Set 范围 = [在哪里查]
For Each 单元格 In 范围
If 单元格.Value = [查什么].Value Then
i = i + 1
If i = 第几次出现 Then
孙兴华 = 单元格.Offset(0, 返回什么).Value
Exit For
End If
End If
Next
End Function
然后我们到工作表中使用函数

切记!这个逻辑
因为:要先自己学会,才能帮助别人
所以:要先会写sub,才会写function
