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”也会起作用。
答案 0 :(得分:2)
选项vbTextCompare可以使比较不区分大小写:
InStr(1, Sheet1.Range("$M$" & x), "No Delay", vbTextCompare)
简单的分配可以避免单元格中值(“YesNo
”)的串联:
Sheet1.Range("$K$" & x).Value = "No"