2017-03-09 53 views
1

我是VBA的新用戶,並且是我自己學習的。我想在單元格中輸入數字(E4,最後一個工作表)並在運行宏時搜索與單元格F2中的數字匹配的所有工作表,然後爲每個匹配數字的工作表編寫代碼,複製一個範圍(這是一個列),然後將所有列粘貼到一個新的工作表中(最後添加)。我以不同的方式嘗試下面的一些代碼,有時工作,有時不工作。在其他問題中,下面的代碼的問題是,它在工作時只能從一個發現中複製一列。如果有更好,更優雅的方式來寫這個(並使其工作)您的幫助表示讚賞。VBA:從包含單元格粘貼範圍中的值的所有工作表中刪除

Sub abc() 

Dim wscount As Integer 
Dim wb As Workbook 
Set wb = ActiveWorkbook 
wscount = wb.Worksheets.Count 
k = 1 
j = 1 

If Worksheets(k).Range("F2").Value = Worksheets(wscount).Range("E4").Value Then 
Worksheets(wscount + 1).Range(Cells(1, 1 + j), Cells(100, 1 + j)).Value = Worksheets(k).Range("F1:F100").Value 
Worksheets(wscount + 1).Range(Cells(1, 1 + j), Cells(100, 1 + j)) = Worksheets(k).Range("F1:F100").Value 

j = j + 1 

End If 

End Sub 

回答

0

您沒有添加新工作表並且您沒有在工作表之間循環。這是一種方法:

Sub abc() 
    Dim wscount As Integer: wscount = Worksheets.Count 
    Dim j As Long, k As Long 
    Worksheets.Add After:=Worksheets(wscount) 

    For k = 1 To wscount - 1 
     If Worksheets(k).Range("F2").value = Worksheets(wscount).Range("E4").value Then 
      j = j + 1 
      Worksheets(wscount + 1).Columns(j).value = Worksheets(k).Columns("F").value 
     End If 
    Next 
End Sub 
相關問題