분류 전체보기 702

엑셀 VBA 사용자가 선택한 셀의 범위 알아내기

Sub user_selet() Dim i As Long, j As Long Range("h3").CurrentRegion.Clear i = Selection.Cells().Rows.Count ' 사용자가 선택한 행의 갯수 알아내기 j = Selection.Cells().Columns.Count ' 사용자가 선택한 열의 갯수 알아내기 Range(Cells(3, 2), Cells(3 + i - 1, 2 + j - 1)).Copy ' 사용자가 선택한 영역 복사하기 Range("h3").PasteSpecial Range("b3").Select Application.CutCopyMode = xlCopy End Sub ' 이것은 선택을 시작하는 주소를 알고 있는 경우이고 모르는 경우는 주소를 별도로 알아내야 한다...

엑셀 2021.08.31

VBA 엑셀 파일 열지 않고 값을 불러오기

Sub 매크로1() Dim TF As Workbook Set TF = GetObject("C:\test\notopen.xlsx") 'A1 값을 가져온다. Range("A1") = TF.Sheets(1).Range("A1").Value '다 사용한 파일 객체는 꼭 닫아준다. TF.Close End Sub ======================================= Sub call_data() Dim TF As Workbook ' target file Dim sh보고서 As Worksheet, sh파일명 As Worksheet Dim rng As Range Set sh보고서 = Sheets("보고서") Set sh파일명 = Sheets("파일명") ' 불러올 파일의 경로가 있는 시트 Set rng..

엑셀 2021.06.14

VBA 셀병합 해제

Sub vba() Dim cel, rng, tmp As Range Set rng = Range("a1", Cells(Rows.Count, "a").End(3)) ' End(3)은 End(xlUp)과 같은 의미 For Each cel In rng ' For Each ~ Next 문 시작 If cel.MergeCells Then ' 첫번째 if문 시작 If cel.MergeArea.Cells(1).Address = cel.Address Then ' 두번째 if문 시작 Set tmp = cel.MergeArea cel.MergeArea.UnMerge tmp.FillDown End If ' 두번째 if문 끝 End If ' 첫번째 if문 끝 Next ' For Each ~ Next 문 시작 End Sub

엑셀 2020.08.16