Excel VBA查找函数不返回一个整数值,看不到我做错了什么

所以我正在写一个excel marco来自动执行一些手动任务。 我打了一个函数,我写了一个墙,它无法返回一个整数值给我使用的子我打电话给它。 我觉得这很简单,但我不能为我的生活看到我在做什么错误。

Function Find_Header(SearchTerm As String) As Integer Dim Rng As Range With Sheets("DATA").Range("A:CZ") Set Rng = .Find(What:=SearchTerm, _ After:=.Cells(.Cells.Count), _ LookIn:=xlValues, _ lookat:=xlWhole, _ SearchOrder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False) If Not Rng Is Nothing Then Application.Goto Rng, True Find_Header = Rng.Column Else MsgBox "Nothing found" End If End With End Function 

从一个子我可以这样称呼它:

 Find_Header SearchTerm:="Status" 

而且由于“状态”这个术语在特定的范围内,并且是列号5我希望在我的子集中看到“Find_Header”等于5,但是一旦函数结束,variables就会丢失,我没有做的在子程序中保留这个值?

谢谢,克里斯

您需要将结果存储在一个variables中 – 例如:

 Dim iFoundCol as Integer iFoundCol = Find_Header(SearchTerm:="Status") 

函数返回一个需要存储在variables中的值,不能简单地调用该函数