|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 엑셀 버전(95,97,2000,xp,2003,2007): Office 365
* 아래줄에 질문을 작성하세요 >>
SQL 서버 연결하여 데이터를 가져온 다음,
해당 데이터를 날짜 조건으로 검색하려고 합니다.
최초 데이터를 가져온 후,
날짜 검색을 하면, 데이터가 불러오지 않습니다.
확인해보니 데이터의 "CardIssueDate" 컬럼에
날짜가 들어가 있어도 문자열로 인식을 하는 것 같습니다.
해당 컬럼을 더블클릭 해서 재정렬(?)하면 인식을 하는 것 같구요.
좋은 해결 방안 업을 까요?
==============[채준석님 글에 대한 답변입니다]==============
아래와 같이 수정해보세요...
Sub between_Two_Days_수정()
Dim rTg As Range
Dim rDb As Range, rRow As Range
Dim dStart As Date, dEnd As Date
Dim lRow As Long
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
With ActiveSheet
Set rTg = ActiveSheet.[A5]
rTg.CurrentRegion.Offset(1).ClearContents
dStart = .[E1]
dEnd = .[E2]
If dStart > dEnd Then
MsgBox "날짜입력 오류. 시작일이 작아야 합니다.", 64, "입력오류"
GoTo Exit_Sub
End If
End With
Set rDb = Worksheets("출력").Range("A1").CurrentRegion
Set rDb = rDb.Offset(1).Resize(rDb.Rows.Count - 1)
For Each rRow In rDb.Rows
If DateValue(rRow.Cells(1, 5)) >= dStart And DateValue(rRow.Cells(1, 5)) <= dEnd Then
lRow = lRow + 1
rTg.Cells(lRow, 1).Resize(1, rRow.Columns.Count) = rRow.Value
End If
Next
With rTg.CurrentRegion
.Sort Key1:=.Cells(1, 5), Header:=xlYes
End With
Exit_Sub:
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
End Sub |
|