hoangnam_vt
Thành viên mới

- Tham gia
- 20/12/12
- Bài viết
- 11
- Được thích
- 0
Nếu dữ liệu trong Data hàng ngàn dòng và hàng chục huyện thị (hàng chục sheet) thì dùng hàm mảng chắc oải quá.Giúp mình với. Mình muốn loc danh sách từ 1 sheet khách hàng hiện có trong sheet DATA. ra các sheet , theo từng khu vực.
Cho mình hỏi làm sao ra được giống file của bạn vậy? Mình làm không được... File này cũng chính là một bài test đầu vào khi đi xin việc.
Trong file đó có cái này:Cho mình hỏi làm sao ra được giống file của bạn vậy? Mình làm không được... File này cũng chính là một bài test đầu vào khi đi xin việc.
Muốn làm giống thì thêm nó vào file của bạn.Function LocDF(DF As Range, CSDL As Range)
Dim sRng As Range, Cls As Range
Dim J As Long, Rw As Long
Rw = CSDL.Rows.Count
ReDim Arr(1 To Rw, 1) As String
Set sRng = CSDL(1).Resize(Rw).Find(DF.Value, , xlFormulas, xlWhole)
If Not sRng Is Nothing Then _
Set CSDL = Range(sRng, CSDL(1).Offset(Rw))
For Each Cls In CSDL
If Cls.Value = DF.Value Then
J = J + 1
Arr(J, 1) = Cls.Offset(, 1).Value
End If
Next Cls
LocDF = Arr()
End Function
Cho mình hỏi làm sao ra được giống file của bạn vậy? Mình làm không được... File này cũng chính là một bài test đầu vào khi đi xin việc.
Thật tình là trình độ của em làm cái này không được, em ko biết thêm nó vào đâu cả...Trong file đó có cái này:
Muốn làm giống thì thêm nó vào file của bạn.
Thật tình là trình độ của em làm cái này không được, em ko biết thêm nó vào đâu cả...
Nếu dữ liệu trong Data hàng ngàn dòng và hàng chục huyện thị (hàng chục sheet) thì dùng hàm mảng chắc oải quá.
Thử với VBA xem sao. Hổng chịu thì thôi.
Từ sheet Data chuyển sang sheet khác là code chạy.
[HTML][QUOTE]
Option Explicit
Public Sub GPE()
Application.ScreenUpdating = False
Dim DK As String, sArr(), dArr(), I As Long, K As Long, Ws As Worksheet
With Sheets("Data")
sArr = .Range(.[A2], .[A65000].End(xlUp)).Resize(, 2).Value
End With
For Each Ws In Worksheets
ReDim dArr(1 To UBound(sArr, 1), 1 To 1)
K = 0
If Ws.Name <> "Data" Then
DK = Ws.[C1].Value
For I = 1 To UBound(sArr, 1)
If sArr(I, 1) = DK Then
K = K + 1: dArr(K, 1) = sArr(I, 2)
End If
Next I
End If
Ws.[C2:C10000].ClearContents
If K Then
Ws.[C2].Resize(K).Value = dArr
Ws.[C2].Resize(K).Borders.LineStyle = xlContinuous
End If
Next Ws
Application.ScreenUpdating = True
End Sub
[/QUOTE][/HTML]