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

时间:2015-02-23 14:01:57

标签: excel excel-vba 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'在我的sub中等于5,但是一旦函数结束变量丢失,我不会在子例程中保留这个值吗?

谢谢, 克里斯

2 个答案:

答案 0 :(得分:1)

您需要将结果存储在变量中 - 例如:

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

答案 1 :(得分:0)

一个函数返回一个需要存储在变量中的值,你不能简单地只调用函数