πŸ“˜ Programming/Excel VBA

[Excel VBA] λ‹€λ₯Έ μ—‘μ…€ 파일 κ°’ κ°€μ Έμ˜€κΈ°

ν•œμ½”λ”© 2020. 11. 6. 10:48
728x90
728x90

'Excel 2016' κΈ°μ€€μœΌλ‘œ μž‘μ„±λœ κΈ€μž…λ‹ˆλ‹€. VBA(Visual Basic for Application)λŠ” μ—‘μ…€μ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ” μ‚¬μš©μž μ •μ˜ ν•¨μˆ˜λ₯Ό κ΅¬ν˜„ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. 자주 μ‚¬μš©ν•˜λŠ” κΈ°λŠ₯κ³Ό ν•¨μˆ˜λ₯Ό μ†Œκ°œν•©λ‹ˆλ‹€.

 

λ‹€λ₯Έ μ—‘μ…€ 파일 μ°Έμ‘°ν•˜κΈ°

 

λ‹€λ₯Έ 파일의 μ…€μ˜ 값을 가져와 μ μš©ν•˜λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€.

 

μ•„λž˜μ™€ 같이 "톡합 λ¬Έμ„œ 2.xlsx" νŒŒμΌμ— 값이 μ €μž₯λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 이 νŒŒμΌμ„ λ‹«μ•„μ€λ‹ˆλ‹€.

 

 

μ•„λž˜μ™€ 같이 "톡합 λ¬Έμ„œ1.xlsx"에 "톡합 λ¬Έμ„œ2.xlsx"에 μ €μž₯된 A1:C3값을 κ°€μ Έμ˜€κΈ° μœ„ν•œ λ²„νŠΌμ„ μ‚½μž…ν•©λ‹ˆλ‹€.

 

 

λ²„νŠΌμ— λŒ€ν•œ VBA μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

Private Sub CommandButton1_Click()

    Dim copy_range As Variant
    
    Application.Workbooks.Open Filename:=ThisWorkbook.Path & "\" & "톡합 λ¬Έμ„œ2" & ".xlsx"
    copy_range = Sheets(1).Range("A1:C3").Value
    ActiveWorkbook.Close
    
    Sheets(1).Range("A1:C3") = copy_range
    
End Sub

 

Application.Workbooks.Open은 μƒˆλ‘œμš΄ νŒŒμΌμ„ μ—΄ λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. Filename:= 뒀에 μžμ‹ μ΄ μ—΄κ³ μž ν•˜λŠ” 파일 κ²½λ‘œμ™€ 이름을 μ μŠ΅λ‹ˆλ‹€. "톡합 λ¬Έμ„œ1.xlsx"와 "톡합 λ¬Έμ„œ2.xlsx"λŠ” 같은 폴더 내에 μ €μž₯ν–ˆκΈ° λ•Œλ¬Έμ— ThisWorkbook.Pathλ₯Ό 톡해 μ•ž 경둜λ₯Ό λ™μΌν•˜κ²Œ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

 

Variant ν˜•μ˜ copy_range λ³€μˆ˜μ— "톡합 λ¬Έμ„œ2.xlsx"에 μ €μž₯된 A1:C3 μ…€μ˜ 값을 μ €μž₯ν•©λ‹ˆλ‹€. 그리고, ActiveWorkbook.Close둜 λ‹«μŠ΅λ‹ˆλ‹€.

 

이제 λ‹€μ‹œ ActiveWorkbook은 "톡합 λ¬Έμ„œ1.xlsx"둜 λŒμ•„μ˜΅λ‹ˆλ‹€. κ·Έ νŒŒμΌμ— 첫 μ‹œνŠΈμ— A1:C3에 방금 μ €μž₯ν•œ 값을 λΆ™μ—¬λ„£μŠ΅λ‹ˆλ‹€.

 

이제 μž‘μ„±μ„ 마치면 μ €μž₯ν•˜κ³  λ²„νŠΌμ„ λˆŒλŸ¬λ΄…μ‹œλ‹€.

 

μ•„λž˜μ™€ 같이 λ‚˜νƒ€λ‚˜μ…¨λ‚˜μš”? λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ 무언가 λ°˜μ§ν•˜κ³  μ—΄λ Έλ‹€κ°€ λ‹«νž™λ‹ˆλ‹€. 그리고 λ‚˜μ„œ μ €λ ‡κ²Œ 값을 λΆˆλŸ¬μ˜΅λ‹ˆλ‹€.

 

728x90
λ°˜μ‘ν˜•