doanhoanghai
Thành viên hoạt động
- Tham gia
- 20/12/07
- Bài viết
- 195
- Được thích
- 4
mình có vẫn đề về lọc tách dữ liệu theo ngày tháng ! chỉ dùm mình với nhé !
doanhoanghai;88809[COLOR="Silver" đã viết:]bạn cũng giống mình nhìn thấy mấy kiểu này mình ớn kinh ! nhưng mình thấy các cuối đều là số và định [/COLOR]lọc theo dạng ký tự số... chữ ... cuối là số thì lấy tất cả các ký tự số ở cuối ra ! không biết có đc không nữa ngán kiểu này quá à ! ai bít giúp mình với nhé !
Hic... Hic... Dử liệu kiểu này đúng là rối thật! Nhưng cũng cố gắng làm cho bạn!bạn cũng giống mình nhìn thấy mấy kiểu này mình ớn kinh ! nhưng mình thấy các cuối đều là số và định lọc theo dạng ký tự số... chữ ... cuối là số thì lấy tất cả các ký tự số ở cuối ra ! không biết có đc không nữa ngán kiểu này quá à ! ai bít giúp mình với nhé !
Option Explicit
Sub DateConvert()
Dim i As Long, J As Long
Dim K As Byte
Dim Temp As String, Chw As String
Dim Nam As Integer, Thang As Integer, Ngay As Integer
For i = 2 To [B60000].End(xlUp).Row
For J = Len(Cells(i, 2)) To 1 Step -1
Chw = Mid(Cells(i, 2), J, 1)
If Asc(Chw) < 48 Or Asc(Chw) > 57 Then K = Len(Cells(i, 2)) - J: Exit For
Next J
Temp = Right(Cells(i, 2), K)
Select Case Len(Temp)
Case 8: Nam = Right(Temp, 4) * 1
Thang = Mid(Temp, 3, 2) * 1
Ngay = Left(Temp, 2) * 1
Cells(i, 3) = DateSerial(Nam, Thang, Ngay)
Case 6: Nam = Right(Temp, 2) + 2000
Thang = Mid(Temp, 3, 2) * 1
Ngay = Left(Temp, 2) * 1
Cells(i, 3) = DateSerial(Nam, Thang, Ngay)
Case 4: Nam = Right(Temp, 2) + 2000
Thang = Mid(Temp, 2, 1) * 1
Ngay = Left(Temp, 1) * 1
Cells(i, 3) = DateSerial(Nam, Thang, Ngay)
End Select
Next i
End Sub
Sub To_Date()
On Error Resume Next
Dim Irow As Long, i As Long
Dim Ng As String, Th As String, Na As String
Irow = Range("A65000").End(xlUp).Row
For i = 2 To Irow
Schuoi = Val(StrReverse(Cells(i, 2)))
Schuoi = StrReverse(Schuoi)
Select Case Len(Schuoi)
Case 4
Ng = Left(Schuoi, 1)
Th = Mid(Schuoi, 2, 1)
Na = Right(Schuoi, 2)
Cells(i, 3) = DateSerial(Na, Th, Ng)
Case 6
Ng = Left(Schuoi, 2)
Th = Mid(Schuoi, 3, 2)
Na = Right(Schuoi, 2)
Cells(i, 3) = DateSerial(Na, Th, Ng)
Case 8
Ng = Left(Schuoi, 2)
Th = Mid(Schuoi, 3, 2)
Na = Right(Schuoi, 4)
Cells(i, 3) = DateSerial(Na, Th, Ng)
End Select
Next
End Sub
Ý bạn là sao?đúng là siêu thật bài này DL lung tung tưởng trừng không thể làm được ai ngờ ! cảm ơn các bạn nhiều lắm ! nhân đây mình muốn hỏi phần lọc theo ngày tháng sao giờ nghĩa là chọn báo cáo theo thời gian xác định từ ngày này , đến ngày lọc ra DL trong khoảng thời gian đó ! liệu có được không vậy !
1/ Bạn chưa lọc đã xoá hết dữ liệu trong sheet Nhap thì lấy đâu ra dữ liệu để lọc nữa?Các bạn giúp mình lọc từ ngày tới ngày tí, mình làm hoài không được .Xin cảm ơn
Sub Loc()
Dim n, i, j, k As Integer
Dim rngNgay As Range
' Xoa du lieu cu
Sheet4.Range("A6:S1000").ClearContents
'Loc va copy du lieu
n = Sheet1.Range("A65000").End(xlUp).Row
Set rngNgay = Sheet1.Range("A6:A" & n)
k = 6
For i = 6 To n
If rngNgay.Cells(i - 5, 1) > Sheet4.Cells(3, 2) Then Exit For
If rngNgay.Cells(i - 5, 1) >= Sheet4.Cells(2, 2) Then
For j = 1 To 19
Sheet4.Cells(k, j) = Sheet1.Cells(i, j)
Next
End If
k = k + 1
Next
End Sub