如果同一列中的另一个单元格包含X,则替换/更新/修改单元格值

时间:2012-12-28 17:40:07

标签: excel vba replace updatepanel clearcase

Excel背景
我有2个excel列和长行记录。 (仅限示例,因为我有超过10列)

A栏 - 是“是或否” B栏 - 是一个评论。可以输入我需要的任何东西


如何运作
这是一个订购系统,如果日期延迟,A栏将显示“是” 如果没有延迟,它将显示“否”


我需要
我需要VBA代码来执行以下操作:

如果列B2包含文本“无延迟”,则列A2将从“是”更改为“否”


我测试的内容

    Private Sub UpdateColumnA()
    Dim x As Long
    For x = 4 To 65536
    Dim InStr As String

    If InStr(1, Sheet1.Range("$M$" & x), "No Delay") Then
        Sheet1.Range("$K$" & x) = Sheet1.Range("$K$" & x) & "No"
        End If

    Next
    End Sub

我遇到的问题是,A2栏“是”将变为“ YesNo ”。我需要将Yes替换为No,而不是添加到现有文本。

如果B2文本“无延迟”不完全匹配,则根本不起作用,因此我希望它不区分大小写,例如“nO Delay”“No DeLAy”也会起作用。

1 个答案:

答案 0 :(得分:2)

选项vbTextCompare可以使比较不区分大小写:

InStr(1, Sheet1.Range("$M$" & x), "No Delay", vbTextCompare)

简单的分配可以避免单元格中值(“YesNo”)的串联:

Sheet1.Range("$K$" & x).Value = "No"