在Excel VBA中更改活动单元格的字符值

我正在尝试编写一个VBAmacros,它从活动单元格中取一个字母表中的单个字母,并用前面五个位置的字母(即“a”变成“f”,“x”变成“c”)replace它。 这是解码encryption文本的文件,其中所有的字母已经被移回五个位置。

到目前为止,我已经尝试使用该字母的ASCII值,并从该整数转换回字符,但这似乎并没有工作(运行时错误13),我不禁想知道是否有一个更有效的方法。 以下是我到目前为止:

Sub DECODER() Worksheets("Sheet1").Activate Dim What As String What = ActiveCell.Value Dim dCode As String If What = "" Then dCode = What Else dCode = Chr(Asc((What) + 5)) End If ActiveCell.Value = dCode End Sub 

没有VBA:

在单元格A1中使用单个小写字母字符时,在B1中input:

 =CHAR(IF(CODE(A1)>117,CODE(A1)-26,CODE(A1))+5) 

在这里输入图像描述

VBA:

 Public Function DeCoder(Sin As String) As String Dim num As Long If Sin Like "[az]" Then num = Asc(Sin) + 5 If num > 122 Then num = num - 26 DeCoder = Chr(num) Else DeCoder = Sin End If End Function