我想通过将字符 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] 删除。
我来说两句