如何使用替代函数来解密和加密消息

亚辛·扎格利兹

我想通过将字符 A 更改为 N,将 B 更改为 O 来加密和解密消息……就像您在我的代码中看到的那样。我需要一些帮助,谢谢!!

Sub MacroCryptage()
Dim ws1 As Worksheet
Set ws1 = Worksheets("Feuil1")
Dim rng As Range, cell As Range
Set rng = ws1.Range("G" & 6)
Set cell = ws1.Range("G" & 5)

    rng = WorksheetFunction.Substitute(cell, "A", "N")
    rng = WorksheetFunction.Substitute(cell, "B", "O")
    rng = WorksheetFunction.Substitute(cell, "C", "P")
    rng = WorksheetFunction.Substitute(cell, "D", "Q")
    rng = WorksheetFunction.Substitute(cell, "E", "R")
    rng = WorksheetFunction.Substitute(cell, "F", "S")
    rng = WorksheetFunction.Substitute(cell, "G", "T")
    rng = WorksheetFunction.Substitute(cell, "H", "U")
    rng = WorksheetFunction.Substitute(cell, "I", "V")
    rng = WorksheetFunction.Substitute(cell, "J", "W")
    rng = WorksheetFunction.Substitute(cell, "K", "X")
    rng = WorksheetFunction.Substitute(cell, "L", "Y")
    rng = WorksheetFunction.Substitute(cell, "M", "Z")
    rng = WorksheetFunction.Substitute(cell, "N", "A")
    rng = WorksheetFunction.Substitute(cell, "O", "B")
    rng = WorksheetFunction.Substitute(cell, "P", "C")
    rng = WorksheetFunction.Substitute(cell, "Q", "D")
    rng = WorksheetFunction.Substitute(cell, "R", "E")
    rng = WorksheetFunction.Substitute(cell, "S", "F")
    rng = WorksheetFunction.Substitute(cell, "T", "G")
    rng = WorksheetFunction.Substitute(cell, "U", "H")
    rng = WorksheetFunction.Substitute(cell, "V", "I")
    rng = WorksheetFunction.Substitute(cell, "W", "J")
    rng = WorksheetFunction.Substitute(cell, "X", "K")
    rng = WorksheetFunction.Substitute(cell, "Y", "L")
    rng = WorksheetFunction.Substitute(cell, "Z", "M")

End Sub
被骚扰的爸爸

您当前的问题是您的解决方案仅适用于两个指定的单元格。您应该将其编写为接受原始文本并返回编码字符串的函数

您正在查看的是 ROT13。实现这一点的最简单方法是使用字符的 ASCII 值。在 VBA 中,您可以使用 ASC() 函数返回字符的 ascii 值,然后添加 13,然后使用 CHR() 函数将该值转换回字符。此版本仅适用于大写文本 - 字符 65 到 90。小写运行 97 到 122,因此您可以根据需要为此添加测试

Public Function Cypher(origtext as string) as string
dim s as string
dim answer as string
dim x as integer
dim myvar as integer
for x = 1 to len(origtext)
     s = mid(origtext,x,1)
     myvar = asc(s)+13
     if myvar > 90 then myvar = 65 + (myvar-91) ' 91 maps to 65, etc. Could instead just use myvar = myvar - 26
     s = chr(myvar)
     answer = answer & s
next x
Cypher = answer
End Function

要使用它,请在电子表格中输入 =Cypher(cell ref) 其中单元格 ref 包含您想要加密的文本

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章