Skip to content

Commit 331dee5

Browse files
committed
Fixed: the value of PI cannot be retrieved.
1 parent c9b39d1 commit 331dee5

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/VBAexpressions.cls

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,7 @@ End Sub
456456
Private Sub AddVariable(ByRef variable As String, ByRef aKey As String)
457457
Dim VarIdx As Long
458458

459-
CastCase variable, aKey
459+
aKey = CastCase(variable)
460460
VarIdx = GetCBItemIdx(ExprVariables, aKey)
461461
If VarIdx = -1 Then 'Ensure uniqueness
462462
AppendToCBbuffer ExprVariables, aKey
@@ -802,13 +802,13 @@ Private Function callback(ByRef sClassName As String) As Object
802802
Set callback = CallByName(New VBAcallBack, sClassName, VbGet)
803803
End Function
804804

805-
Private Sub CastCase(ByRef Expression As String, ByRef outStr As String)
805+
Private Function CastCase(ByRef Expression As String) As String
806806
If Not NotIsPI(Expression) Then
807-
outStr = LCase$(Expression) 'Case insensitive for PI
807+
CastCase = LCase$(Expression) 'Case insensitive for PI
808808
Else
809-
outStr = Expression
809+
CastCase = Expression
810810
End If
811-
End Sub
811+
End Function
812812

813813
Private Function CastOPtype(ByRef strOperand As String, ByRef Negate As Boolean) As Variant
814814
If IsLiteralString(strOperand) Then 'Literal strings like ['string']
@@ -1397,8 +1397,8 @@ Private Function GetEvalToken(ByRef Expression As String) As token
13971397
GetEvalToken.Arg2.FunctionIn = (GetEvalToken.Arg2.funcName <> vbNullString) Or GetEvalToken.Arg2.UDFFunctionIn
13981398
GetEvalToken.Arg1.LinkedIndex = GetIndex(GetEvalToken.Arg1.DefString)
13991399
GetEvalToken.Arg2.LinkedIndex = GetIndex(GetEvalToken.Arg2.DefString)
1400-
GetEvalToken.Arg1.LinkedVar = GetCBItemIdx(ExprVariables, GetEvalToken.Arg1.DefString)
1401-
GetEvalToken.Arg2.LinkedVar = GetCBItemIdx(ExprVariables, GetEvalToken.Arg2.DefString)
1400+
GetEvalToken.Arg1.LinkedVar = GetCBItemIdx(ExprVariables, CastCase(GetEvalToken.Arg1.DefString))
1401+
GetEvalToken.Arg2.LinkedVar = GetCBItemIdx(ExprVariables, CastCase(GetEvalToken.Arg2.DefString))
14021402
GetEvalToken.Arg1.Implicit = (GetEvalToken.Arg1.LinkedIndex >= 0)
14031403
GetEvalToken.Arg2.Implicit = (GetEvalToken.Arg2.LinkedIndex >= 0)
14041404
GetEvalToken.Arg1.FactorialIn = (InStrB(1, GetEvalToken.Arg1.DefString, op_Factorial) = LenB(GetEvalToken.Arg1.DefString) - 1)
@@ -1412,7 +1412,7 @@ Private Function GetEvalToken(ByRef Expression As String) As token
14121412
GetEvalToken.Arg1.UDFFunctionIn = IsUDFFunction
14131413
GetEvalToken.Arg1.FunctionIn = (GetEvalToken.Arg1.funcName <> vbNullString) Or GetEvalToken.Arg1.UDFFunctionIn
14141414
GetEvalToken.Arg1.LinkedIndex = GetIndex(GetEvalToken.Arg1.DefString)
1415-
GetEvalToken.Arg1.LinkedVar = GetCBItemIdx(ExprVariables, GetEvalToken.Arg1.DefString)
1415+
GetEvalToken.Arg1.LinkedVar = GetCBItemIdx(ExprVariables, CastCase(GetEvalToken.Arg1.DefString))
14161416
GetEvalToken.Arg1.Implicit = (GetEvalToken.Arg1.LinkedIndex >= 0)
14171417
GetEvalToken.Arg1.FactorialIn = (InStrB(1, GetEvalToken.Arg1.DefString, op_Factorial) = LenB(GetEvalToken.Arg1.DefString) - 1)
14181418
End If

0 commit comments

Comments
 (0)