Vba 如果列包含字符串的一部分,如何循环遍历列并更改单元格值

Vba 如果列包含字符串的一部分,如何循环遍历列并更改单元格值,vba,excel,Vba,Excel,我试图循环遍历列“C”中的所有单元格,如果单元格包含“Mon”,则将值更改为Today()-4,因为报告在星期五运行。我把Today()放在单元格“K5”中,因为我不知道如何将它合并到我的 For Each cell In Sheets("EMAIL DATA").Range("C:C") If cell.Value = "*Mon*" Then Set cell.Value = ("K5" - 4) End If Next 感谢您的帮助。要引用需要使用的单元格K5,请

我试图循环遍历列“C”中的所有单元格,如果单元格包含“Mon”,则将值更改为Today()-4,因为报告在星期五运行。我把Today()放在单元格“K5”中,因为我不知道如何将它合并到我的

For Each cell In Sheets("EMAIL DATA").Range("C:C")
    If cell.Value = "*Mon*" Then
    Set cell.Value = ("K5" - 4)
    End If
Next

感谢您的帮助。

要引用需要使用的单元格K5,请执行以下操作:
范围(“K5”)
。或者Excel会将“K5”视为一个普通字符串并抛出一个错误

For Each cell In Sheets("EMAIL DATA").Range("C:C")
    If cell.Value Like "*Mon*" Then
    Set cell.Value = (Sheets("EMAIL DATA").Range("K5") - 4)
    End If
Next

要引用单元格K5,需要使用:
Range(“K5”)
。或者Excel会将“K5”视为一个普通字符串并抛出一个错误

For Each cell In Sheets("EMAIL DATA").Range("C:C")
    If cell.Value Like "*Mon*" Then
    Set cell.Value = (Sheets("EMAIL DATA").Range("K5") - 4)
    End If
Next

尝试下面的代码,使用
DateAdd
函数从今天的日期减去4天(
date

注意:无需将今天的日期保存在单元格“K5”中,只需使用
日期
功能即可

For Each cell In Sheets("EMAIL DATA").Range("C:C")
    If cell.Value Like "*Mon*" Then
        cell.Value = DateAdd("d", Date, -4)
    End If
Next

尝试下面的代码,使用
DateAdd
函数从今天的日期减去4天(
date

注意:无需将今天的日期保存在单元格“K5”中,只需使用
日期
功能即可

For Each cell In Sheets("EMAIL DATA").Range("C:C")
    If cell.Value Like "*Mon*" Then
        cell.Value = DateAdd("d", Date, -4)
    End If
Next

嗨,斯科特,感谢您的回复。但是,当使用上述内容时,包含“Mon 10:31”的单元格不会更改。知道为什么吗?嗨,斯科特,谢谢你的回复。但是,当使用上述内容时,包含“Mon 10:31”的单元格不会改变。知道为什么吗?谢谢Shai。非常好,谢谢谢。完美地工作