Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Excel基于一个单元格的内容更改另一个单元格的内容_Vba_Excel - Fatal编程技术网

VBA Excel基于一个单元格的内容更改另一个单元格的内容

VBA Excel基于一个单元格的内容更改另一个单元格的内容,vba,excel,Vba,Excel,你能帮我做这个吗。Excel的外观如下所示: 我希望自动化两项任务: 当C列中的单元格包含单词“已处理”=>清除A列中相应单元格中的内容 当C列中的单元格包含单词“blue”=>将B列中的相应单元格更改为0 我尝试过偏移、循环和其他各种方法,但似乎都做不好。请提供帮助。使用InStr-函数检查它是否包含子字符串。有关更多信息,请参阅 Sub-removeprocessed() 暗线和长线一样长 我想我会坚持多久 Nlines=列(1)。查找(“*”,xlByColumns,xlPrevious

你能帮我做这个吗。Excel的外观如下所示:

我希望自动化两项任务:

  • 当C列中的单元格包含单词“已处理”=>清除A列中相应单元格中的内容
  • 当C列中的单元格包含单词“blue”=>将B列中的相应单元格更改为0

  • 我尝试过偏移、循环和其他各种方法,但似乎都做不好。请提供帮助。

    使用
    InStr
    -函数检查它是否包含子字符串。有关更多信息,请参阅

    Sub-removeprocessed()
    暗线和长线一样长
    我想我会坚持多久
    Nlines=列(1)。查找(“*”,xlByColumns,xlPrevious)。行
    对于i=2到Nlines
    如果0 InStr(1,单元格(i,3).值,“已处理”),则
    单元格(i,1)。Value=“”
    如果结束
    如果0 InStr(1,单元格(i,3).值为“蓝色”),则
    单元格(i,2)。值=0
    如果结束
    下一个
    端接头
    

    按照@UGP

    的建议使用InStr,请理解堆栈溢出不是免费的代码编写服务,因此您需要回答您的问题并展示您已经尝试过的代码,(1)告诉我们您的代码的用途以及您希望它做什么。(2) 如果有任何错误消息,您会收到错误消息以及错误消息的位置。(3) 您的代码遇到了什么问题以及您在哪里遇到了问题。如果您的目标已经实现,请接受答案。(单击答案旁边的绿色复选标记)(1)如果您发布代码,则应遵循指南:例如,始终完全限定单元格和范围(2)除非与旧API通信,否则切勿使用整数(而应始终使用Long):Excel的行数超过整数所能处理的行数。(3) 将值设置为string
    .value=“0”
    从来都不是一个好主意,相反,您应该使用
    .value=0
    (4)我知道您只想提供帮助,但我认为我们不应该回答与主题无关的问题,因为只需要代码。@PalimPalim非常感谢您的帮助。很appreciated@Peh注意这些。我很抱歉,因为我是这个网站的新手。@AidanWee如果您使用PalimPalim的代码,请确保您不按原样使用它,但请更改我在上面的评论中提到的内容,以免以后遇到任何问题。谢谢您的回答:)
    Sub removeprocessed()
    Dim Nlines As Long
    Dim i As Long
    Nlines = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row
    For i = 2 To Nlines
        If 0 <> InStr(1, Cells(i, 3).Value, "processed") Then
            Cells(i, 1).Value = ""
        End If
        If 0 <> InStr(1, Cells(i, 3).Value, "blue") Then
            Cells(i, 2).Value = 0
        End If
    Next
    End Sub