为范围中的每个单元格循环不会返回任何值,我想我的代码没有错误

我试图使这个简单的循环工作,我没有错误,当我按下运行子,但没有值显示在列W.我试图返回列R中的值,当N列中相应的值是“卖”。 我在这里犯了什么明显的错误?

For Each cell In Range("n62:n166") If cell.Value = "sell" Then Range("r" & cell.Row) = Range("w" & cell.Row) End If Exit For Next 

非常感谢你们 我是VBA的新手,所以我在这方面还是很糟糕的。 谢谢。

我build议你为所有的范围调用指定表单,并且不区分大小写

 With Sheets("Sheet2") For Each cell In .Range("n62:n166") If Trim$(Lcase$(cell.Value2)) = "sell" Then .Range("r" & cell.Row).Value2 = .Range("w" & cell.Row).Value2 End If Next End With 

如果你想从列R复制值到列W(这是我的理解你的问题),那么你应该这样写: Range("W" & cell.Row) = Range("R" & cell.Row) 。 此外,应该没有Exit For并使用Next cell而不是只是Next

 For Each cell In Range("n62:n166") If cell.Value = "sell" Then Range("W" & cell.Row).Value = Range("R" & cell.Row).Value End If Next cell 

您是否试图将R列中的单元格的值更改为满足要求( value = "Sell" )的行的W列中的value = "Sell" ? 如果是这样,你错过了.Value一块 – 在这里:

 For Each cell In Range("N62:N166") If Trim(WorksheetFunction.Proper(Cell.Value)) = "Sell" Then Range("R" & Cell.Row).Value = Range("W" & Cell.Row).Value Next