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

 조삿갓 (choga21)

추천:  2
파일:     조회:  1963
제목:   [RE]조건문과 반복문을 활용하세요.
     
  * 아래줄에 질문을 작성하세요 >>

Public Sub CommandButton10_Click()

Dim emptyRow As Long

Worksheets("ABC").Activate
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 

ActiveSheet.Cells(emptyRow, 1).Value = TextBox2.Value
ActiveSheet.Cells(emptyRow, 2).Value = TextBox3.Value
ActiveSheet.Cells(emptyRow, 3).Value = TypeName.Value
ActiveSheet.Cells(emptyRow, 4).Value = ComboBox5.Value
ActiveSheet.Cells(emptyRow, 5).Value = TextBox43.Text


Unload Me

End Sub

TextBox2번을 특정시트 A열값들중이랑 비교했을때 그 셀로 이동하는부분에서 막히는데요

저위에 그대로하면 그냥 맨아래에값에만 들어가는데

A열값 = 텍스트박스2번밸류같으면 해당셀에 위에값들이 들어가는 문을 

저의 머리로를 너무 한계라서...도움을 요청합니다.
==============[디레이지님 글에 대한 답변입니다]==============

Public Sub CommandButton10_Click()
 Dim r As Long

 Worksheets("ABC").Activate
 For r = 1 To Rows.Count
                ' 현재 워크시트의 가장 아래 행(한계값)
      ' 1행부터 전체 워크시트의 A열을 차례로 검사
      ' 만일 1행에 제목(표헤드)이 있고 실제 데이터는
      ' 3행부터라면 여기를 r=3 으로 수정할 것
    If IsEmpty(Cells(r, 1)) Or Cells(r, 1).Value = TextBox2.Value Then
       ' A열 r번째 행 셀이 빈 셀이거나 TextBox2와 일치하하면
       ' 나머지 항목들을 대입하고 반복 중지(목적 달성했으니까)
      Cells(r, 1).Value = TextBox2.Value
      ' 현재 활성화된 시트의 셀에 대해서는 굳이 ActiveSheet를 지정하지 않아도 됨
      Cells(r, 2).Value = TextBox3.Value
      Cells(r, 3).Value = TypeName.Value
      Cells(r, 4).Value = ComboBox5.Value
      Cells(r, 5).Value = TextBox43.Text
      Exit For
    End If
  Next r
  Unload Me
 End Sub
 
[불량 게시물 신고]  
디레이지감사합니다 조삿갓님 해당문을 적용해서 확인하니 계속 맨아래에 들어 가는데 (A열 값들중에 TExt2번박스하고 맞는게 있더라도)

왜 지나치고 맨아래에 가는지 해당문은 맞는것같은데 제가 빼먹은게있나요?
03-29 (11:41)
삭제 ■신고
디레이지해당시트 a1에 10

텍스트박스2번이 10일경우

텍스트박스2번이값이들어갈때 빈공간이아닌

해당시트 a1에 값이 들어가는부분입니당.
03-29 (13:37)
삭제 ■신고
디레이지아 죄송합니다 조삿갓님

textbox2번값이 스트링값 ("1") 으로 읽어서 해당값을 val(textbox2))넣어서 해결했습니다. 감사합니다 매번 도움을 주셔서
03-29 (14:21)
삭제 ■신고
조삿갓사용자정의 폼의 텍스트박스는 수치를 입력해도, 날짜 데이터를 입력해도 무조건 문자열로만 반환합니다.
말씀하신 것처럼 텍스트박스의 결과에 Val 함수를 채워도 되지만, 이 경우 문제는 문자열 비교가 실패한다는 것이지요.

Cells(r, 1).Value = TextBox2.Value 조건식을
Cells(r, 1).Value & "" = Trim(TextBox2.Value) 또는
Cells(r, 1).Text = Trim(TextBox2.Value)
로 바꾸어 보시기 바랍니다.
03-29 (22:18)
삭제 ■신고
조삿갓Cells 개체의 Text 속성에 대해서는 다음 자료를 참고하세요.

● http://www.officetutor.co.kr/board/Dtype/bfrmvw.asp?f_tn=Dqa_excel_n2&f_bno=123771&page=&fchk=&fval=
03-29 (22:20)
삭제 ■신고
        
  

작성일 : 2018-03-28(21:18)
최종수정일 : 2018-03-28(21:18)
 


 ◎ 관련글

  제 목   작성자   날짜
특정 텍스트박스값이 같을때 해당 시트셀이 엑셀에서는 쉬운데 vba로는 어렵네요... 디레이지 2018-03-28
[RE]조건문과 반복문을 활용하세요. 조삿갓 2018-03-28