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

Members - Question and Answer


관련된 값 찾아서 한시트에 정리하기



문제화일을 올리면 눈으로 씨~익 보고 마니까..
이렇게 귀찮아도 코딩하는게 편타..
아래의 구문을 실행하면..

Sub makeQuestionSht() Dim sht1 As Worksheet Dim sht2 As Worksheet Dim sht3 As Worksheet, shtX As Worksheet Dim iNextRow As Integer, iX As Integer For iX = 1 To 3 With Worksheets.Add .Name = "sht" & iX .Range("A1:B1") = _ Array("날짜", Choose(iX, "홍길동", "일지매", "시각")) .Cells.Font.Name = "맑은 고딕" .Cells.Font.Size = 9 End With Next For iNextRow = 1 To 100 For iX = 1 To 3 Set shtX = Worksheets("sht" & iX) With shtX.Range("A2") .Offset(iNextRow - 1) = "2009010" & Int(Rnd() * 8) + 1 With .Offset(iNextRow - 1, 1) If iX = 3 Then .Value = TimeValue("14:10:" & Int(Rnd() * 60)) .NumberFormat = "MM:SS" Else .Value = Int(Rnd() * 100) + 1 End If End With End With Next Next shtX.Range("a1").CurrentRegion.Sort _ Range("A1"), xlAscending, , , , , , xlYes End Sub

질문하신 분이 보내오신 화일보다 난해하지 않고 좋다

세장의 시트가 만들어지고
세장에는 아래의 그림과 같이(위의 프로시져를 실행하면 )
만들어졌다


이것을 아래와 같은 결과로 만들어 달라는 문제였다



실은 위의 문제를 만든 프로시져보다 답은 더 쉬울것이다
위의 문제를 내는 프로시져에는
워크시트만들기..
배열함수활용하기.
서식하기..
choose함수활용하기..
range오브젝트다루기..기초는 모두 포함하고 있다

아래와 같이 작성하여 실행하면 답이 될수 있을것이다

Sub putIntoOneSht() Dim shtX(1 To 2) As Worksheet Dim iX As Integer, rRow As Range Dim rData As Range, rDest As Range Dim rFind As Range, rX As Range On Error GoTo NO_SHEETS Set rDest = Worksheets("sht3").Range("A1").CurrentRegion Set rDest = rDest.Columns(1) For iX = 1 To 2 Set rData = Worksheets("sht" & iX).Range("A1") rDest.Parent.Range("A1").Offset(, iX + 1) = rData.Offset(, 1) Set rData = rData.CurrentRegion.Offset(1) Set rData = rData.Resize(rData.Rows.Count - 1) For Each rX In rData.Rows With rX Set rFind = rDest.Find(.Cells(1), , , xlWhole) If Not rFind Is Nothing Then Do rFind.Offset(, iX + 1) = .Cells(2) Set rFind = rFind.Offset(1) Loop While rFind = .Cells(1) End If End With Next Next Exit Sub NO_SHEETS: MsgBox "문제지가 없습니다!!" End Sub

질문을 하고 적절한 해법을 드려도 기초가 튼튼치 못하여
약간의 경우의 수가 바뀌면 어쩔줄 몰라 한다면..
마음 단단히 먹구 기초부터 달려드는 것이 답!!!
아무쪼록 기초를 잘 쌓으시도록!!!!