FOR NEXT或FOR EACH LOOP仅适用于第一个值

请帮助为下面的代码做For Next循环; 我试图复制一个范围内的每个单元格,并将其过滤到特定的(固定位置)单元格,然后从特定的(固定位置)单元格中复制结果并将其粘贴到特定的单元格中。 我想为一个范围内的每个单元格执行此操作。 使用macros我logging下面的代码工作完美的代码,但我想从这个loggingmacros做一个NEXT或FOR EACH循环,所以请任何人帮助我。

' PastSpecialCheck6 Macro ' ' For L1 ActiveSheet.Cells(12, 103).Select Selection.Copy Range("B9").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("B28:B34").Select Selection.Copy ActiveSheet.Cells(40, 103).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ' For L02 ActiveSheet.Cells(13, 103).Select Selection.Copy Range("B9").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("B28:B34").Select Selection.Copy ActiveSheet.Cells(40, 104).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ' For L03 ActiveSheet.Cells(14, 103).Select Selection.Copy Range("B9").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Range("B28:B34").Select Selection.Copy ActiveSheet.Cells(40, 105).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False 

我试过这个代码循环,但徒劳无功。 它只适用于一个范围内的一个单元格。

  Sub pastspecialmy_30July2015_2() ' Ln is length Dim Ln As Variant ' i is numbers Dim i As Integer ' For L1 For Each Ln In ActiveSheet.Range("CY12:CY30").Cells For i = 125 To 143 ' Ln.Activate Range("B9").Select Selection.Value = Ln Range("B28:B34").Select Selection.Copy ActiveSheet.Cells(57, i).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Next Next End Sub 

这是你正在尝试?

 Sub Sample() Dim i As Long, n As Long Dim ws As Worksheet Set ws = ActiveSheet n = 103 With ws For i = 12 To 30 .Cells(i, 103).Copy .Range("B9").PasteSpecial Paste:=xlPasteValues, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False .Range("B28:B34").Copy .Cells(40, n).PasteSpecial Paste:=xlPasteValues, _ Operation:=xlNone, SkipBlanks:=False, Transpose:=False n = n + 1 Next i End With End Sub