2015-10-26 72 views
0

我一直在處理這個代碼,它有一個循環來打開列中的每個文件,然後應該做一個複製列的每一行的循環。當我運行第一個循環它工作正常,但是當我添加第二個它不工作。有人能幫助我嗎?非常感謝您2在同一個宏中的循環

Sub teste() 

Dim myRng As Range 

Dim myCell As Range 

Workbooks("TIME_SHEET_MACRO").Activate 

With WorkSheets("Base de dados") 

    Set myRng = .Range("E1", .Cells(.Rows.Count, "E").End(xlUp)) 

    Set myRnge = .Range("B2", .Cells(.Rows.Count, "B").End(xlUp)) 

    For Each myCell In myRng.Cells 

     For Each myCells In myRnge.Cells 

     If .Cells(myCell.Row, "E").Value <> "" Then 

      Workbooks.Open (myCell) 

      Workbooks("TIME_SHEET_MACRO").Activate 

      WorkSheets("Base de dados").Activate 

     If .Cells(myCells.Row, "B").Value <> "" Then 

      ActiveCell.Copy 

     End If 

    Next myCell 

End With 

End Sub 
+2

總是幫助格式化你的代碼,並使用縮進去幫助別人讀它... –

+2

你錯過了'next'和'結束如果' – findwindow

回答

0
For Each myCell In myRng.Cells 
    For Each myCells In myRnge.Cells 
     If .Cells(myCell.Row, "E").Value <> "" Then 
      Workbooks.Open (myCell) 
      Workbooks("TIME_SHEET_MACRO").Activate 
      WorkSheets("Base de dados").Activate 
     If .Cells(myCells.Row, "B").Value <> "" Then 
      ActiveCell.Copy 
     End If 
Next myCell 

應該是─

For Each myCell In myRng.Cells 
    For Each myCells In myRnge.Cells 
     If .Cells(myCell.Row, "E").Value <> "" Then 
      Workbooks.Open (myCell) 
      Workbooks("TIME_SHEET_MACRO").Activate 
      WorkSheets("Base de dados").Activate 
     End If 
     If .Cells(myCells.Row, "B").Value <> "" Then 
      ActiveCell.Copy 
     End If 
    Next myCells 
Next myCell