我真的很擅长使用vba。我想要做的是逐个查看列的单元格中的值" 1"。
如果找到,则移回4列并将内容复制到上一行。并在整个专栏中重复这一点。我尝试了以下代码,但它没有用。
Sub find()
'
' find Macro
Range("M1").Select
Range(Selection, Selection.End(xlDown)).Select
For Each xCell In Selection
If ActiveCell.Value = 1 Then
ActiveCell.Offset(0, -4).Copy
ActiveCell.Offset(-1, -4).Select
ActiveSheet.Paste
'Else
'ActiveCell.Offset(1, 0).Select
End If
Next xCell
End Sub
答案 0 :(得分:1)
您在循环xCell时使用ActiveCell。通常,您不必使用Selection和ActiveCell。 Sub你应该看起来像这样:
Sub find()
For Each xcell In Range(Range("M1"), Range("M1").End(xlDown))
If xcell.Value = 1 Then
xcell.Offset(0, -4).Copy Destination:=xcell.Offset(-1, -4)
End If
Next xcell
End Sub