2016-07-26 9 views
0

私はNext Without Forのエラーが表示されていますが、なぜ表示されません。私がしようとしているのは、基本的に北西部の主要ワークシートを検索し、その行のすべての情報をコピーして、それをNorth Westシートに貼り付けることです。Excel For Next For

Sub NorthWest() 

Sheets("MASTERSHEET").Select 
LastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row 
For i = 2 To LastRow 
If Range("E" And i).Value = "North West" Then 
Rows(i).Select 
Selection.Copy 
Sheets("North West").Select 
erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 
Next i 

ActiveSheet.Cells(erow, 1).Select 
ActiveSheet.Paste 
Application.CutCopyMode = False 

End If 

End Sub 
+0

は(両方ここでは、自分のマシン上で)正しくコードをインデントするために学び、そしてそれは図のようにこの種の問題ははるかに容易になりますあなたのために働いていますですあなた自身。 –

+0

@ user2771898私の答えは以下の通りです。シートを選択せず​​にシート間でコピー&ペーストしています。 –

+0

先端のKenに感謝します。ありがとうShai、私はあなたの方法を試してみましょう - あなたの入力と時間のために多くの感謝、それは非常に感謝しています。 – user2771898

答えて

3

あなたIfEnd if

If Range("E" And i).Value = "North West" Then 
    Rows(i).Select 
    Selection.Copy 
    Sheets("North West").Select 
    erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 
End If 

ようにコードを修正してNextはあなたのコードの

0

別のオプションを動作する必要はありません、使用して回避することですSheets.Selectと可能なエラーを避けるためにシート変数を宣言するActiveSheetを使用している間に取得する可能性があります。

私は列EでMASTERSHEETの細胞が「北西」に等しい場合は、ワークシート間の複数のコピー&ペーストをしたいと仮定。

以下

検索コードと私に教えて、それは

Option Explicit 

Sub NorthWest() 

Dim sht_Master     As Worksheet 
Dim sht_NorthWest    As Worksheet 
Dim LastRow      As Long 
Dim lrow      As Long 
Dim erow      As Long 

' set sht objects to avoid possible errors if using Active sheet 
Set sht_Master = ThisWorkbook.Sheets("MASTERSHEET") 
Set sht_NorthWest = ThisWorkbook.Sheets("North West") 

LastRow = sht_Master.Range("A" & sht_Master.Rows.Count).End(xlUp).Row 

For lrow = 2 To LastRow 

    ' I assumed you want to copy and past between sheets inside the For loop 
    If sht_Master.Range("E" & lrow).Value = "North West" Then 
     erow = sht_NorthWest.Cells(sht_NorthWest.Rows.Count, 1).End(xlUp).Offset(1, 0).Row 

     ' copy and paste between sheets without using Select 
     sht_Master.Rows(lrow).Copy _ 
     Destination:=sht_NorthWest.Range("A" & erow) 
    End If 

Next lrow 

End Sub