【发布时间】:2017-12-11 17:46:38
【问题描述】:
我在VBA 中有以下代码来评估变量lngPNumber 以将“正确”值发送到WorksheetFunction.vLookup 函数:
Dim lngPNumber As Variant
lngPNumber = ActiveSheet.Cells(objInitialCell.Row, INT_ACCP_COL_PNUMBER).Value
If IsNumeric(lngPNumber) = False Or CDbl(lngPNumber) <> Round(CDbl(lngPNumber)) Then
lngPNumber = CStr(ActiveSheet.Cells(objInitialCell.Row, INT_ACCP_COL_PNUMBER).Text)
End If
lngPNumber可以是:
- 一个整数值 (f.i. 4111)
- 一个浮点值 (41.111111)
- 或只是一个 字符串值(通常为“xxxx”,但也可以用字符串填充 比如“asdasd”、“dasdsadasd”等...)
在最后两种情况下,我想发送单元格文本而不是获取lngPNumber 的单元格值。
但是,如果值是列表中最后一个示例中的字符串,则会出现类型不匹配错误。有什么帮助吗?
【问题讨论】:
-
If 将尝试解析 Or 的两边,无论第一个是 false 还是 true,所以如果
lngPNumber是文本,CDbl(lngPNumber)将出错。 -
解释here