如果满足If条件,则从行复制粘贴特定列

我试图build立一个macros来复制粘贴特定列从行,当满足条件。 If条件的一部分被testing和工作,正如我在另一个macros中使用的那样。 在我的情况下,问题是我不知道如何select一个循环内的行的特定列。 我只知道如何select整行(在这种情况下,如果我没有弄错的话,它会是行(i).EntireRow.Copy)。 我在下面提供我的代码。 需要编辑的部分是

.Rows(i).Columns(1, 4, 6, 8).Copy Sheets("WFRandVFR_REPORT").range("W2").Paste 

整个代码是这一个

(更新后的版本)

我也提供了截图

在这里输入图像说明 在这里输入图像说明

 Dim lr As Long Dim rng As range Dim mDiff1 As Double mDiff1 = 0.01 With Worksheets("WFRandVFR_REPORT") lr = range("L" & Rows.Count).End(xlUp).Row For i = 2 To lr If Cells(i, "U").Value - Cells(i, "V").Value > mDiff1 Then If rng Is Nothing Then Set rng = .range("L" & i & ":V" & i) Else Set rng = Union(rng, .range("L" & i & ":V" & i)) End If End If Next i rng.Copy Sheets("WFRandVFR_REPORT").range("AI2").PasteSpecial End With 

复制你可以使用

 Range("A" & i & ", D" & i & ", F" & i & ", H" & i & "").Copy '(as mentioned in comment) 

要么

 Union(.Range("A" & i), .Range("D" & i), .Range("F" & i), .Range("H" & i)).Copy 

因此,尝试

 Union(.Range("A" & i), .Range("D" & i), .Range("F" & i), .Range("H" & i)).Copy Sheets("WFRandVFR_REPORT").range("W2").PasteSpecial xlPasteValues 

要不就

 Union(.Range("A" & i), .Range("D" & i), .Range("F" & i), .Range("H" & i)).Copy Sheets("WFRandVFR_REPORT").range("W2").PasteSpecial 

要么

 Union(.Range("A" & i), .Range("D" & i), .Range("F" & i), .Range("H" & i)).Copy Sheets("WFRandVFR_REPORT").range("W2") 

编辑:

是否有任何特定的原因,你为什么从底部循环,如果不改变FOR循环为

 For i = 2 To lastrow 

你的代码将会是

 Dim mDiff As Integer Dim rng As Range mDiff = 0.03 With Worksheets("WFRandVFR_REPORT") lastrow = Range("L" & Rows.Count).End(xlUp).Row For i = 2 To lastrow If Cells(i, "U").Value - Cells(i, "V").Value > mDiff Then If rng Is Nothing Then Set rng = .Range("L" & i & ":V" & i) Else Set rng = Union(rng, .Range("L" & i & ":V" & i)) End If End If Next i rng.Copy Sheets("WFRandVFR_REPORT").Range("AI2").PasteSpecial End With