2017-08-02 57 views
1

注意:我能够上传评论中图片的链接。VBA中的循环代码

我在一个excel宏中使用for循环尝试编译数据。

我有以下VBA代码:

Sub MoveData() 
' 
' MoveData Macro 
' 

' 
Dim rng As Range 
Set rng = Macro.Application.Range("R1:X1000") 
With rng 


    For i = 1 To 200 
     a = 5 * i 
     b = i + 1 

     Range(a, 18).Select 
     Selection.Copy 
     Range(b, 3).Select 
     ActiveSheet.Paste 

    Next i 

End With 

End Sub 

我收到以下错误信息: 运行时错误 '424':

对象所需

任何澄清将不胜感激!我已经沉迷了很长一段时间了!

+0

正在复制和粘贴在同一张表中?并且这些范围'Range(a,18)'和'Range(b,3)'总是相同的? – paulinhax

+0

尝试更改此'Macro.Application.Range'到这个'ActiveSheet.Range' – braX

+0

是的,我正在复制并粘贴在同一张表中。我将始终从列R:X复制并粘贴到列C:I – Emma

回答

1

试试这个,并确保你的值在activesheet。

Sub MoveData() 

    Dim rng As Range 

    Set rng = ActiveSheet.Range("R1:X1000") 

    With rng 
     For i = 1 To 200 
      a = 5 * i 
      b = i + 1 

      Debug.Print "copying from =>" & .Cells(b, 3).Address 
      Debug.Print "copyting to =>" & .Cells(a, 18).Address 

      Stop 'and take a look at the immediate window 
      ' what is there? 

      .Cells(b, 3) = .Cells(a, 18) 
     Next i 
    End With 

End Sub 
+0

由于某种原因,这似乎删除了我的数据列t。 – Emma

+0

@Emma - 再次尝试编码。每次代码停止时,请查看直接窗口。 – Vityata

+0

每一轮都打印出来:从=> $ T $ 2复制 复制到=> $ AI $ 5 – Emma