VBA:case issentitive,if cell = string

时间:2016-11-02 15:00:53

标签: excel vba excel-vba macros

在这个例子中,如果它包含bk,BK,Bk或bK,我想删除字符串的结尾。是否有一种简单的方法可以使这个案例不同意?感谢

If Right(Cells(i, 1), 2) = "bk" Then
    Cells(i, 1) = Replace(Cells(i, 1), "bk", "")
End If

2 个答案:

答案 0 :(得分:3)

是的,既然你想要替换字符串末尾的各种“bk”,你可以使用UCase,如下面的代码所示:

If UCase(Right(Cells(i, 1), 2)) = "BK" Then
    Cells(i, 1) = Replace(Cells(i, 1), "bk", "", 1, -1, vbTextCompare)
End If

注意:将vbTextCompare的最后一个参数添加到Replace函数表示它不区分大小写,并将删除所有类型的“bk”。

修改1 : 如果您在某个字符串中出现多次“bk”,并且您只想删除字符串末尾的那个,请使用下面的代码(感谢@Ron Rosenfeld):

If UCase(Right(Cells(i, 1), 2)) = "BK" Then
    Cells(i, 1) = Left(Cells(i, 1), Len(Cells(i, 1)) - 2)
End If

答案 1 :(得分:0)

要删除最后两个字符,我建议:

#parallelogram {
width: 150px;
height: 100px;
-webkit-transform: skew(20deg);
-moz-transform: skew(20deg);
-o-transform: skew(20deg);
background: red;}

其中R是范围对象(或文本字符串)