View Single Post
 
Old 07-27-2021, 03:46 PM
Guessed's Avatar
Guessed Guessed is offline Windows 10 Office 2016
Expert
 
Join Date: Mar 2010
Location: Canberra/Melbourne Australia
Posts: 3,999
Guessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant futureGuessed has a brilliant future
Default

The easiest way would be to set the counter to zero if we encounter the / character. Effectively this is discarding A and starting counting again.
Code:
Sub MyCalculatorSentences()
  Selection.Range.Sentences(1).Select
  Dim aChar As Variant, aRng As Range, iTotal As Long
  Set aRng = Selection.Range
  For Each aChar In aRng.Characters
    Select Case AscW(aChar)
      Case 1488 To 1497: iTotal = iTotal + AscW(aChar) - 1487
      Case 1498: iTotal = iTotal + 20
      Case 1499: iTotal = iTotal + 20
      Case 1500: iTotal = iTotal + 30
      Case 1501: iTotal = iTotal + 40
      Case 1502: iTotal = iTotal + 40
      Case 1503: iTotal = iTotal + 50
      Case 1504: iTotal = iTotal + 50
      Case 1505: iTotal = iTotal + 60
      Case 1506: iTotal = iTotal + 70
      Case 1507: iTotal = iTotal + 80
      Case 1508: iTotal = iTotal + 80
      Case 1509: iTotal = iTotal + 90
      Case 1510: iTotal = iTotal + 90
      Case 1511: iTotal = iTotal + 100
      Case 1512: iTotal = iTotal + 200
      Case 1513: iTotal = iTotal + 300
      Case 1514: iTotal = iTotal + 400
      Case 45: iTotal = iTotal * -1 'a minus sign
      Case 47: iTotal = 0   'reset counter to zero if / encountered
      Case Else: Debug.Print AscW(aChar)    'show unhandled characters in Immediate Window
    End Select
  Next aChar
  MsgBox iTotal
End Sub
__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia
Reply With Quote