VBAmacros:如何检查范围的每个值到一个特定的值,并粘贴特定的行(的范围)作为pastespecial使用VBAmacros?

我有我的数据

Row1 2012 12 13 14 15 16

Row2 2013 10 20 30 40 50

Row3 2014 54 34 50 67 78

Row4 2015 67 82 33 44 66

我在我的第3列,第4列,第5列,第6列,第7列有公式我有最小值,可能是2012年或2013年或2014年。让我们说这是2013年。我想创build一个macros来粘贴整个行作为价值当年小于最小值。在这种情况下,我希望行R1被粘贴为值,因为我的分钟是2013年,其余保持与公式相同。

我尝试了下面的macros,但被困在了pastespecial部分。请帮我debugging它或写在一个更有效的方式。

Sub pasteasvalues() Application.ScreenUpdating= False Dim rng as Range Dim cell as Variant Sheets("working").Activate Set rng=Range("A1:A4") For each cell in rng If cell.value=2013 then cell.EntireRow.copy cell.EntireRow.PasteSpecial Paste:x1PasteValues End if Next End Sub 

我在Paste:x1PasteValues部分遇到一个错误。让我知道我错在哪里,或者我怎样才能更有效地写

您可以通过使range.value = range.value删除公式,您不需要复制/ pasteSpecial。

 Sub pasteasvalues() Dim Sh As Worksheet Dim rng As Range Dim cell As Range Set Sh = Sheets("working") Set rng = Sh.Range("A1:A4") For Each cell In rng.Cells If cell.Value = 2013 Then cell.EntireRow.Value = cell.EntireRow.Value Next cell End Sub 
 Sub pasteasvalues() Application.ScreenUpdating = False Dim rng As Range Dim cell As Variant Sheets("working").Activate Set rng = Range("A1:A4") For Each cell In rng If cell.Value = 2013 Then cell.EntireRow.Copy Range("a6").Select Selection.PasteSpecial Paste:=xlPasteValues,Operation:=xlNone, SkipBlanks :=False, Transpose:=False End If Next End Sub