如何在宏中处理野生字符?

时间:2015-04-24 20:38:10

标签: vba excel-vba excel

我已经编写了一段代码来替换任何字符,但它与*无法正常工作。有人可以指导我如何处理* 这是代码:

nextrow = ActiveCell.Row
tocolnbr = ActiveCell.Column
Columns(tocolnbr).Select

Selection.Replace What:="'", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

3 个答案:

答案 0 :(得分:3)

使用~ tilde as per Office Support

  

Microsoft Excel使用波形符(〜)作为标记来指示下一个字符是文字​​。当您使用“查找和替换”对话框查找或替换波形符(〜),星号(*)或问号(?)等字符时,必须在字符之前添加波形符(〜)。找到什么盒子。

所以它一定是这样的:

Selection.Replace What:="~*", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False

答案 1 :(得分:0)

使用它的Chr值

Selection.Replace What:=Chr(42), Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

修改 我发布没有检查。您的代码可以替换" *"什么都没有,虽然你发布的内容正在取代"'"什么都没有。

答案 2 :(得分:0)

我刚用过这个,

Sub Button1_Click()
    Dim rng As Range
    Set rng = Range("K2")
    rng = Replace(rng, "*", "")
End Sub

它删除了*

是角色吗?或者只是一个星号?

对于整个细胞范围,

Sub Button1_Click()
    Dim rng As Range, c As Range
    Set rng = Range("K2:K20")
    For Each c In rng.Cells
        c = Replace(c, "*", "")
    Next c
End Sub

我在某些情况下会看到你必须使用代字号“”符号,但我不知道这里是否需要。