如何在VBA for Excel中将任何单元格转换为整数?

我想创build一个函数,将参数作为Cell并返回一个Integer 。 如果转换不成功,它应该简单地返回0,而不会向用户抛出错误信息。

我不关心包含浮点值的单元格,它们也可以返回0,因为它看起来不像整数。 但是像00001234这样的文本值应该返回123412 34应该返回0。

这个怎么样:

 Option Explicit Public Function ConvertToInteger(Cell As Range) As Integer On Error GoTo NOT_AN_INTEGER ConvertToInteger = CInt(Cell.Value) Exit Function NOT_AN_INTEGER: ConvertToInteger = 0 End Function 

请注意,例如,5.6的值将返回6,但是。 如果你想要它为0,你必须检查它,并做相应的。

如果要求返回一个整数,而不pipeinputstring的长度如何,你可以格式化你的单元格,使其有0个小数位,并且像下面这样做,这会自动地将数据types提升到所需的精度。 否则,如果你只是想要一个VBA整数,你将不得不截断input值。

 Public Function ConvertToIntegral(Cell As Range) As Variant On Error GoTo catch Dim result As Variant result = Val(Cell.Value) ConvertToIntegral = result Exit Function catch: ConvertToIntegral = 0 End Function