如果列A中的值然后在列B中替换,则为VBA

时间:2016-04-08 13:01:16

标签: excel vba find-replace

我目前正在使用此VBA代码查看Sheet2中A列中的值,如果找到它,则会在Sheet1中的A列中删除此值。



function appController($scope,$document) {
    $scope.menuOpened = false;
    $document.on('click', handler);

    function handler() {
       $scope.menuOpened = false;
    }
    $scope.openMenu = function(event) {
       $scope.menuOpened = !$scope.menuOpened;
       event.stopPropagation();
    }
}




因此,在A栏的Sheet1上我有:

白色

b black

d white

c orange

在A栏的Sheet2上我有:

B'/ P>

d

C

当我运行VBA时,因此我有白色,黑色,橙色,白色,没有a,b,c,d,因为这些值在Sheet2中。

但如果我在第A列的Sheet1中有这些:

白色

黑b

白色

orange c

代码无法正常运行。

干杯

1 个答案:

答案 0 :(得分:0)

你可以使用正则表达式,它能够识别是否找到了包含空格,行首或行尾的字符串。这样的事情。

Dim regex As Object, str As String
Set regex = CreateObject("VBScript.RegExp")

With regex
  .Pattern = "(^|[[:blank:]])[" + :: VALUE FROM SHEET 1:: + "]($|[[:blank:]])"
  .Global = True
End With

val = ::value of cell you are evaluating::
newVal = regex.Replace(val , "")

然后将newVal放入您正在评估的单元格中。我在工作,所以我无法对此进行测试,但希望这会让你走上正确的道路。