2016-04-06 3 views
0

このコードを使用して、ワークシート "Report2"の各行を "Chicago"というフレーズでチェックし、 "Chicago"という行をコピーして新しいシート。しかし、それは動作していません。なぜ歓迎されるのかについての助け。コードはコピーして新しいシートに特定のセルを貼り付けません。

コード:

Sub BranchCount() 

Dim s As Worksheet 
Dim LastRow As Long 

Set s = Worksheets("Report 1") 
LastRow = s.UsedRange.SpecialCells(xlCellTypeLastCell).Row 

Worksheets("Report 1").Select 
Range("A1:J" & LastRow).Select 
Selection.Copy 

Sheets.Add.Name = "Report2" 
Selection.PasteSpecial xlPasteValues 
Range("A1").EntireRow.Delete 
Range("B1").EntireRow.Delete 
Range("C1").EntireRow.Delete 

Dim Z As Range 
Dim Y As String 

Y = W 
W = "Chicago" 

Sheets("Report2").Range("A1").Select 

For Each Z In Range("J1:J" & LastRow) 
    If Y = Z.Value Then 
     Z.EntireRow.Copy 
      Sheets("Clean").Select 
       Range("A700").End(xlUp).Offset(1, 0).Select 
       Selection.PasteSpecial xlPasteValues 
      Sheets("Report2").Select 
    End If 
Next 

End Sub 

はあなたが助けることができるなら、私に教えてください。ありがとう!

+0

'LastRow'があるが、以下のように「クリーン」シートに直接選択したセルをコピーすることができ'Y = W'の前に' W = "Chicago" 'を、' Y = Z.Valueなら '**の部分のみではなく**全体の**セルをテストする必要があります。 – findwindow

+0

findwindowに感謝します。編集しましたが、何らかの理由で目的の行をコピーして貼り付けることがまだありません。追加の助けがあれば幸いです。 – bbran

+0

それはただちに気づいたものです。これらの間違いで、より多くのことができます。また、正確に 'もしY = Z.Value Then'を変更したのですか?私はあなたが 'instr'を使ったのか疑問に思っています....編集:あなたはyとzを後方に持っています.... – findwindow

答えて

0

どんなヘルパー(「報」)シートは必要ありません

あなたは、データ・セルの関連部分をフィルタリングし、

Option Explicit 

Sub BranchCount() 

Dim s1 As Worksheet, sC As Worksheet 
Dim LastRow As Long 

Set s1 = Worksheets("Report 1") 
Set sC = Sheets("Clean") 

With s1 
    LastRow = .Cells(.Rows.Count, "J").End(xlUp).Row 
    With .Range("A1:J" & LastRow) 
     .AutoFilter field:=10, Criteria1:="Chicago" 
     With .Offset(1).Resize(.Rows.Count - 1) 
      If Application.WorksheetFunction.Subtotal(103, .Columns("J")) > 1 Then .SpecialCells(xlCellTypeVisible).Copy Destination:=sC.Range("A700").End(xlUp).Offset(1, 0) 
     End With 
     .AutoFilter 
    End With 
End With 

End Sub 
関連する問題