为范围中的每个单元格循环不会返回任何值,我想我的代码没有错误
我试图使这个简单的循环工作,我没有错误,当我按下运行子,但没有值显示在列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