בס"ד
אולי יעזור לך:
הקוד להלן הוא ממיר מחזיר גימטריה ממספר לאותיות - ומאותיות למספר, זה נכון עד למספר 499 ו אותיות עד תצט,
אפשר להוסיף - זה פשוט קוד ישן שלי.
Public Function GetGimatryya(str_ As Variant) As Long
Dim i As Long
Dim longht_ As Long
Dim Y As Long
Dim out As Long
Dim str_to_out As String
longht_ = Len(Nz(str_, ""))
For i = 1 To longht_
str_to_out = Mid(str_, i, 1)
Select Case str_to_out
Case "א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "כ", "ל", "מ", "נ", "ס", "ע", "פ", "צ", "ק", "ר", "ש", "ת", "ך", "ם", "ן", "ף":
Y = Asc(str_to_out) - 223
Case Else
Y = 0
End Select
arr_ = Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 20, 30, 40, 40, 50, 50, 60, 70, 80, 80, 90, 90, 100, 200, 300, 400)
out = Nz(out, 0) + arr_(Y)
Next i
GetGimatryya = out
End Function
Public Function GetGimatryyaStr(str_ As Variant) As String
Dim i As Long
Dim longht_ As Long
Dim Y As Long
Dim out As String
Dim str_to_out As Long
longht_ = Len(Nz(str_, ""))
arr_ = Array("", "א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "י", "כ", "ל", "מ", "נ", "ס", "ע", "פ", "צ", "ק", "ק", "ר", "ש", "ת")
For i = 1 To longht_
Select Case (longht_ + 1) - i
Case 1:
str_to_out = CLng(IIf(Nz(Mid(str_, i, 1), "") = "", 0, Mid(str_, i, 1)))
out = Nz(out, 0) + arr_(str_to_out)
Case 2:
str_to_out = CLng(IIf(Nz(Mid(str_, i, 1), "") = "", 0, Mid(str_, i, 1)))
out = Nz(out, 0) + arr_(str_to_out + 10)
Case Else
str_to_out = CLng(IIf(Nz(Mid(str_, i, 1), "") = "", 0, Mid(str_, i, 1)))
out = Nz(out, 0) + arr_(str_to_out + 20)
End Select
Next i
GetGimatryyaStr = out
End Function
אפשר לנסות
Debug.Print GetGimatryya("רמח")
Debug.Print GetGimatryyaStr(499)