2017-08-02 98 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