엑셀/VBA

엑셀 VBA/필터된 셀을 필터된 곳에 붙여넣기/보여지는 셀에만 붙여넣기

gongdol 2023. 10. 16. 23:16
300x250

1. 예제 준비

  1) 아래와 같이 예제파일을 만든다. 

  2) 필터를 걸면 아래와 같다. 왼쪽 필터된 내용을 오른쪽 필터된 곳에 붙여넣어보자

      -> no 1, no3 의 데이터를 복사 붙여넣자.

2. 코드준비

  1) 코드가 로스가 좀 있어서 시간이 걸린다. 나중에 배열 활용 필요함.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub FILTERED_PASTE()
 
    Dim COPYRANGE As Range
    Dim pasteRANGE As Range
    Dim i As Integer
    
    Set COPYRANGE = Application.InputBox("복사할범위 선택", Type:=8)
    Set pasteRANGE = Application.InputBox("불여넣을범위 선택", Type:=8)
 
    i = 1
    
    For Each e In pasteRANGE.SpecialCells(xlCellTypeVisible)
        p = 1
        For Each k In COPYRANGE.SpecialCells(xlCellTypeVisible)
            If i = p Then
                k.Copy Destination:=e
            End If
            p = p + 1
        Next
        
        i = i + 1
        
    Next
    
 
End Sub
 
cs

 

  3) 아래 처럼 코드를 돌려 선택해준다. 

3. 결과

   1) 1,3 줄만 복사 붙여넣어 졌다. 

300x250