2016-04-06 36 views
0

我使用此代碼檢查短語「Chicago」的工作表「Report2」中的每一行,並將其中包含「Chicago」的任何行復制並粘貼到其中新表。但是,它不起作用。任何幫助爲什麼將不勝感激。代碼不會將特定單元格複製並粘貼到新工作表中VBA

代碼:

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'是從'報告1',你應該在'Y = W'之前有'W ='芝加哥'',如果Y = Z.Value'只測試**整個**單元格,而不是部分... – findwindow

+0

感謝findwindow。我做了編輯,但它仍然沒有複製和粘貼所需的行出於某種原因。任何額外的幫助非常感謝 – bbran

+0

呃,那只是我立即注意到的一些。有了這些錯誤,肯定會有更多。另外,你究竟改變了'如果Y = Z.Value Then'?我懷疑你使用了'instr' ....編輯:而且你有y和z向後...... – findwindow

回答

0

不需要任何幫助(「報告2」)表

你可以過濾數據單元的相關部分,並複製所選細胞直接向「清潔」表如下

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 
相關問題