agu*_*tin 0 excel vba excel-vba
我有以下代码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
Run Code Online (Sandbox Code Playgroud)
lngPNumber可:
在最后两种情况下,我想发送单元格文本而不是单元格值lngPNumber获取的位置.
但是,如果值是类似于列表中最后一个示例的字符串,则会出现Type Missmatch错误.有帮助吗?
If将尝试解析Or的两边,无论第一个是false还是true,因此CDbl(lngPNumber)如果lngPNumber是text ,则会出错.
所以将它们分成两部分.
Dim lngPNumber As Variant
lngPNumber = ActiveSheet.Cells(objInitialCell.Row, INT_ACCP_COL_PNUMBER).Value
If Not IsNumeric(lngPNumber) Then
lngPNumber = CStr(ActiveSheet.Cells(objInitialCell.Row, INT_ACCP_COL_PNUMBER).Text)
ElseIF CDbl(lngPNumber) <> Round(CDbl(lngPNumber)) Then
lngPNumber = CStr(ActiveSheet.Cells(objInitialCell.Row, INT_ACCP_COL_PNUMBER).Text)
End If
Run Code Online (Sandbox Code Playgroud)
现在第二个只有在lngPNumber数字时才会触发.