Private Function GetPositionIndex(ByVal PositionID As String) As Long
Dim CurrPosition
CurrPosition = ""
Call ofs2.GetText(2, 1, CurrPosition)
If CurrPosition = PositionID Then '当条件相等的时候也不会执行返回语句
GetPositionIndex = 1
Exit Function
End If
GetPositionIndex = -1
End Function我调试的时候,明明看到 CurrPosition 和 PositionID是完全相等的值,程序就是不执行IF里面的代码。
需要说明的是:ofs2.GetText(2, 1, CurrPosition)中的参数都是传址的,CurrPosition 的类型是变体(Variant)
请高人指点,先谢过`~~
Dim CurrPosition
CurrPosition = ""
Call ofs2.GetText(2, 1, CurrPosition)
If CurrPosition = PositionID Then '当条件相等的时候也不会执行返回语句
GetPositionIndex = 1
Exit Function
End If
GetPositionIndex = -1
End Function我调试的时候,明明看到 CurrPosition 和 PositionID是完全相等的值,程序就是不执行IF里面的代码。
需要说明的是:ofs2.GetText(2, 1, CurrPosition)中的参数都是传址的,CurrPosition 的类型是变体(Variant)
请高人指点,先谢过`~~
表面看一样,但实际长度不一样,我正在查找原因,呵呵~~
Dim CurrPosition As String
CurrPosition = ""
Call ofs2.GetText(2, 1, CurrPosition)
If Left(CurrPosition, Len(PositionID)) = PositionID Then '当条件相等的时候也不会执行返回语句
GetPositionIndex = 1
Else
GetPositionIndex = -1
End If
End Function
Dim CurrPosition
CurrPosition = ""
Call ofs2.GetText(2, 1, CurrPosition)
If CurrPosition = val(PositionID) Then '当条件相等的时候也不会执行返回语句
GetPositionIndex = 1
Exit Function
End If
GetPositionIndex = -1
End Function
这个函数应该少用了trim()
if trim(CurrPosition) = trim(PositionID) then
debug.print "原来是空格.."
end if
还可以检验数据类型等