繁体   English   中英

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

[英]Changing Character Value of Active Cell in Excel VBA

我正在尝试编写一个 VBA 宏,它从活动单元格中取出一个字母表,并用前面五个位置的字母替换它(即“a”变成“f”,“x”变成“c”)。 这是对所有字母都向后移动五个位置的加密文本文件进行解码。

到目前为止,我已经尝试使用字母的 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 中输入:

=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 "[a-z]" Then
        num = Asc(Sin) + 5
        If num > 122 Then num = num - 26
        DeCoder = Chr(num)
    Else
        DeCoder = Sin
    End If
End Function

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM