VBA粘贴不遵循If语句

时间:2017-03-06 16:39:53

标签: excel-vba copy-paste autofill vba excel

我正在处理代码,只有当AH列中的值大于零时,才能将多个连续列向下粘贴到X行。但是,它粘贴在每一行而不是仅大于零的行。

这就是我所拥有的:

replace()

感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

如果您打算按原样保留复制/粘贴,则可以在事后使用公式并删除不符合条件的行:

Dim i as Integer

For i = 153 to 11 Step -1 'Since your paste range is AH11:AH153
    If Cells(i,34).Value<=0 Then 'AH is 34th column
        Rows(i).Delete
    End If
Next i

如果你想变得更有活力,你可以做类似的事情:

Dim LR as Long
Dim i as Integer

LR = Cells(Sheets("REF").Rows.Count,1).End(xlUp).Row

For i = LR to 11 Step -1
    If Cells(i,34)<=0 Then
        Rows(i).Delete
    End If
Next i

此反向步骤将从列的最后一行开始,然后向后直到顶部,以便在删除行后最后一行保持更改(在开始循环之前定义)时不会导致错误。