2017-03-09 1 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 
관련 문제