나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 winsco (samdashg)

추천:  2
파일:     조회:  2350
제목:   시트이름과 같은 셀에 자료입력
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):2010
* 아래줄에 질문을 작성하세요 >>
TA라는 시트에 자료를 저장하고 저장한 시간은 MAIN시트의 TA칸 옆셀에 업데이트하고 싶은데 방법 좀 알려주세요
 
[불량 게시물 신고]  
조삿갓실행 조건을 좀 더 구체적으로 말씀하셔야 합니다.
일단은 질문 내용으로 봐서는 자료를 입력하는 시트가 TA 말고도 몇 개의 시트가 더 있는 것 같고
MAIN 시트에는 어떤 열(A열인가요?)에 자료 입력용 시트의 이름들이 열거된 표가 있는 것 같은데...
그 표의 정확한 위치와 구조가 어찌되는지
또 TA 시트에 자료를 저장하는 것은 어느 셀에 어떤 자료들이 저장되는 것인지...?
07-14 (12:37)
삭제 ■신고
조삿갓일단은 TA 시트의 아무 셀이든지 자료를 입력하면
MAIN 시트의 B2 셀에 시간을 기록하는 방법입니다.
(MAIN 시트에 있는 시트명:시간 테이블은 시트명 리스트가
왔다리갔다리하는 것은 아니겠지요. TA 칸은 어디엔가 고정 위치가 있겠지요. 그 고정위치를 사용하는 것이 더 좋습니다.
매번 반복루프를 돌려서 TA라는 문자열을 찾는 방법은 시간낭비이겠지요.)
TA 시트의 시트 모듈에 다음 코드를 입력해 보세요.

Private Sub Worksheet_Change(ByVal Target As Range)
    Worksheets("MAIN").Cells(2, 2) = Now()
End Sub

물론 해당 셀(MAIN 시트의 B2 셀)의 표시형식은 날짜/시간을 표시할 수 있는 서식으로 지정되어 있어야 하고요.
07-14 (12:41)
삭제 ■신고
조삿갓입력용 시트가 더 있으면 각 시트마다 시트모듈에 동일한 코드를 넣어주어야 합니다. 다만, 셀 주소는 시트별로 달라져야 하겠지요. 예컨대 TB 시트의 시트모듈에는 다음과 같이...

Private Sub Worksheet_Change(ByVal Target As Range)
     Worksheets("MAIN").Cells(3, 2) = Now()
 End Sub
07-14 (12:44)
삭제 ■신고
winsco감사합니다.
그런데 메인시트상의 TA위치는 새로 추가되는 시트로 인해 위치가 변합니다.
07-15 (22:32)
삭제 ■신고
조삿갓Private Sub Worksheet_Change(ByVal Target As Range)
Dim rs as Long
With Worksheets("MAIN")
For rs = 2 To Rows.Count
  If .Cells(rs, 1) = ActiveSheet.Name Then Exit For
  If IsEmpty(.Cells(rs, 1) Then
     .Cells(rs, 1) = ActiveSheet.Name
     Exit For
  End If
Next rs
If rs <= Rows.Count Then
  .Cells(rs, 2) = Now()
Else
  ' 오류 처리(메시지 출력 등)
End If
End With
07-15 (22:52)
삭제 ■신고
winsco감사합니다.07-17 (14:45)
삭제 ■신고
        
  

작성일 : 2018-07-13(20:47)
최종수정일 : 2018-07-13(20:47)