Skip Navigation Links.
Expand VBAVBA
엑셀프로그래밍이 필요한 이유
Expand ExcelExcel
Expand External LibraryExternal Library
Expand SolutionSolution
Expand EssayEssay

WorkSheet|Add|TopLeftCell|Parent|Array()|

워크시트를 삽입후 본래의 시트로 돌아가기

Worksheets.Add
를 하면 생성된 시트가 활성화된다
만약 어떤 시트에 버튼이 달려있고 버튼에 워크시트를 생성시키는 프로시져가
연결되어 있다면 실행후 활성화된 시트가 바뀌게 되니까 초보님들은 황당해 한다
변수는 또한 이럴때 활용하게 되는것이다

Sub Test()
Dim shtX As Worksheet
Set shtX=ActiveSheet
Worksheets.Add
'''다른 작업을 하게 되면 하고..
'''다른 작업을 하게 되면 하고..
'''변수에 담긴 당초의 시트로 돌아간다
shtX.Activate
End Sub

버튼이 위치한 시트를 임시 변수에 담아두었다가
작업이 끝난후 임시변수를 사용하여 돌아가면 되는것이다
Set shtX=ActiveSheet
혹은
Set shtX=ActiveSheet.Buttons(Application.Caller).TopLeftCell.Parent
라고 해도 되겠지만 이렇게 바보같이 작성할일은 없고..

여러장의 시트를 선택하는데 마침 숨겨진 시트가 있다면..

"Sheet1","Sheet2","Sheet3","Sheet4","Sheet5"5장의 시트가 있다
그런데 "Sheet2"는 숨겨져있는데
Worksheets(Array("Sheet1","Sheet2","Sheet5")).Select를 하면 어떻게 될까
당연히 에러가 나게 된다
이렇게 처리하도록 한다
이것을 처리 못하면 앞의 페이지 본것이 건성으로 보았던가
아니면 아직 응용단계가 안된 상태다
말로 시나리오를 풀어보면

동적배열을 하나 준비한다
동적배열은 숨긴것을 몇장의 시트를 한꺼번에 선택할지 아직 모르니까
선택하고자 하는 시트3장을 배열에 담아놓고
배열을 순환하면서
각각의 시트가 숨겨져 있는지 확인한다
만약 숨겨졌다면
사용자에게 숨겨진것도 같이 열것인지 확인하고
숨긴 시트도 같이 열고 싶다면 숨김을 해제한후
동적배열에 시트이름을 담아 나가고
숨겨있지 않은 시트라면
그냥 동적배열에 물어볼것없이 담아나간다
동적배열에 모두 담았다면
Worksheets(배열).Select 하면 된다

How To Handle Hidden Sheet

여러장의 시트에 한꺼번에 같은 작업을 하고 싶다

XXX_1,XXX_2,XXX_3 ,3장의 시트만 선택하여 한꺼번에
각각의 시트의 A1셀에서 A10셀까지 오늘 날자를 입력해 주고 싶다
손으로 직접작업할때 Ctrl키를 누르고 시트를 여러개 한꺼번에 선택하고
선택된 한장의 시트에 값을 넣으면 모든 시트에 같은 값이 적용된다
이것을 프로그래밍적으로 처리하고 싶은것이다

Sub writeData_1()
Worksheets(Array("XXX_1", "XXX_2", "XXX_3")).Select
Sheets("XXX_1").Activate
Sheets("XXX_1").Range("A1:A10") = Date
End Sub

위와 같이 하면 될까??
활성화된 시트에만 값이 들어갔다
앞의 페이지에 모두 답이 있다

Write Data Into Multi Sheet