【发布时间】:2014-12-17 17:01:54
【问题描述】:
我正在尝试创建一个在给定单元格范围内查找值的函数,但它没有被执行。它应该返回找到值的单元格。
Function searchInRange(where As Range, what As String) As Range
For Each c In where.Cells
Debug.Print (c.Value)
If c.Value = what Then
searchInRange = c
End If
Next c
End Function
我从一个子模块调用它,但它没有被执行。如果我去调试调试器只是跳转到下一条语句而不输入函数。我不明白为什么
编辑
正如许多人所建议的,我发布了调用函数的模块。它是一个按钮单击功能。正确选择了文件和工作表。我知道这一点是因为最后一句话(PE_Sheet.activate)工作正常。问候。
Private Sub CommandButton1_Click()
Dim PE_File As Workbook
Dim PE_Sheet As Worksheet
Dim cell As Range
Set PE_File = Workbooks(getSelectedWorkbook())
Set PE_Sheet = PE_File.Worksheets("Monitored")
Unload UserForm1
searchAlarmFilter PE_Sheet.Range("A:A"), "5184"
PE_Sheet.Activate
End Sub
【问题讨论】:
-
能否贴出调用该函数的代码部分?
-
如果在父子/函数上跳过该函数,您应该查看父子/函数而不是上面的。正如@TheEngineer 建议的那样,发布调用上述函数的部分
-
不是这就是问题所在,但您可能想要
exit for,因为您可能会覆盖早期的结果