当我使用预先配置好的代码时,VBA中的函数返回值。例如,这个:
Sub TestFunction() 'Test Function
MsgBox CheckCell(1)
End Sub
Function CheckCell(CellValue) As Boolean
If IsNumeric(CellValue) Then
CheckCell = True
Else
CheckCell = False
End If
End Function
运行时正确返回值'True'(或者,根据输入'False',或者如果修改为整数,则为整数等)。
然而,对我来说,我自己编写的代码相同:
Sub TestFunction() 'Test Function
MsgBox LastRowInOneColumn()
End Sub
Function LastRowInOneColumn() As Integer
'Find the last used row in Column A
Dim LastRow As Integer
With ActiveSheet
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
MsgBox LastRow
Exit Function
End With
End Function
无论我如何配置它都不起作用(添加return语句,修改输入等)。为什么?我如何执行这两个功能有什么不同?
回答一些我检查过的明显事情:
A1栏中有许多值(我的样本中有14个)。
函数本身的第一个消息框提示 正确的数字,但不返回值(第二个消息框 值为0)。