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