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

 김영훈 (aachen)

추천:  2
파일:     조회:  2372
제목:   [질문] Excel VBA에서 입력된 마지막 Cell 오른쪽에 내용을 추가하려면?
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007): 2016

* 아래줄에 질문을 작성하세요 >>


안녕하세요?

회사에서 사번을 기준으로 Data를 관리하고자 합니다.

먼저 입력창을 통해 내용을 입력하는 방식을 적용하려고 하고요,
해당 사번으로 아무런 내용도 입력되지 않은 경우와 기존 입력된 내용에 추가하는 두 가지로 만들어 보고 있습니다.

아래와 같이 작성했는데요....
최초 입력은 잘 작동하는데, 내용을 추가하는 경우는 작동을 하지 않고 있습니다.

해당 사번으로 입력된 마지막 셀값을 구하지 못하는 것 같습니다.

고수분들의 지도편달 부탁 드립니다.

감사합니다.


****************************


Sub msave()
    Dim sabun As String
    Dim rngCell As Range
    Dim intNum As Integer
    Dim intStart As Integer
 
    sabun = mBox7.Text
    hrsabun = mBox1.Text
    
    
    Set rngCell = Worksheets("Sheet1").Columns("A:A").Find(what:=sabun, lookat:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
        

'같은 사번에 입력된 내용이 있으면 그 다음에 내용을 추가         
    
    If Not rngCell Is Nothing Then

        rngCell.Offset(0, Range("rngCell").Columns.Count + 1) = mBox1.Text
        rngCell.Offset(0, Range("rngCell").Columns.Count + 2) = mBox2.Text    


    Else

        
'해당 사번으로 최초 입력되는 경우

        intStart = Application.CountA(Worksheets("Sheet1").Columns(1)) + 1
    
        
        Cells(intStart, 1) = TextBox1.Text
        Cells(intStart, 2) = TextBox2.Text

        Cells(intStart, 3) = mBox1.Text
        Cells(intStart, 4) = mBox2.Text

            
        End If
       
    End If
    
End Sub
 
[불량 게시물 신고]  
참서리단순화시켜 파일로 올려주시면
답변드릴께요.
06-17 (13:36)
삭제 ■신고
김영훈아.. 감사합니다.
회사 시스템 상 DRM이 걸리는 관계로, 퇴근 후에 집에서 올려 놓도록 하겠습니다.

감사합니다.
06-17 (13:44)
삭제 ■신고
참서리' 아래와 같이 수정해 보시기 바랍니다.

 If Not rngCell Is Nothing Then
       
        rngCel.end(xltoright).value = mBox1.Text
        rngCell.end(xltoright).value = mBox2.Text    
 Else
       ' 질문자와 같은 결과를 얻지만 단순화 시킨 것임
       cells(rows.count, "A").end(xlup).offset(1).resize(1,4).value =  _
Array(TextBox1.Text, TextBox2.Text, mBox1.Text, mBox2.Text )
    
       
 End If
06-17 (13:46)
삭제 ■신고
김영훈도움 말씀 감사드립니다.

그런데....
 rngCel.end(xltoright).value = mBox1.Text 를 적용하면, 값이 들어있는 맨 마지막 셀이 선택되는 것 같습니다.
값이 들어 있는 맨 마지막 셀보다 '+ 1' 오른쪽에 값이 들어가려면 어떻게 해야할까요?
06-17 (14:45)
삭제 ■신고
김영훈아하~!!

rngCell.End(xlToRight).Offset(0, 1).Value = mBox1.Text

offset을 쓰면 되는군요.

감사합니다.
06-17 (14:49)
삭제 ■신고
        
  

작성일 : 2019-06-17(12:39)
최종수정일 : 2019-06-17(12:39)
 


 ◎ 관련글

  제 목   작성자   날짜
[질문] Excel VBA에서 입력된 마지막 Cell 오른쪽에 내용을 추가하려면? 김영훈 2019-06-17
입력된 마지막 Cell 오른쪽에 내용을 추가하려면? 참서리 2019-06-17