- Tham gia
- 23/3/16
- Bài viết
- 705
- Được thích
- 52
Chào cả nhà GPE !
Em có dùng 1 đoạn code bên dưới dùng để tách dữ liệu từ 1 vùng sang 1 bảng dữ liệu. Khổ nổi code này em lúc trước em dùng cho trường hợp tách ra rồi nếu Trùng tên hàng thì CỘng dồn SL, Đơn giá, Thành tiền lại với nhau thì OK không có sai cả, mà giờ em muốn dùng cho trường hợp chỉ tách ra thôi không cần cộng dồn thì không biết sửa làm sao, em mò gần 3 tiếng sữa đi sữa lại vẫn không được. Code này là của anh Ba TÊ mong anh và mọi người sửa lại giúp em
Hiện tại em đang dùng Code của anh ndu96081631. Code anh Ndu thì OK nhưng nhược điểm là khi em ẩn cái cột dữ liệu ( cần tách ) đi thì nó lại báo lỗi không xuất ra được cái gì hếtXem tại bài : http://www.giaiphapexcel.com/forum/...Giúp-sửa-code-lọc-1-chuỗi-sang-1-bảng-dữ-liệu
Em có dùng 1 đoạn code bên dưới dùng để tách dữ liệu từ 1 vùng sang 1 bảng dữ liệu. Khổ nổi code này em lúc trước em dùng cho trường hợp tách ra rồi nếu Trùng tên hàng thì CỘng dồn SL, Đơn giá, Thành tiền lại với nhau thì OK không có sai cả, mà giờ em muốn dùng cho trường hợp chỉ tách ra thôi không cần cộng dồn thì không biết sửa làm sao, em mò gần 3 tiếng sữa đi sữa lại vẫn không được. Code này là của anh Ba TÊ mong anh và mọi người sửa lại giúp em
Hiện tại em đang dùng Code của anh ndu96081631. Code anh Ndu thì OK nhưng nhược điểm là khi em ẩn cái cột dữ liệu ( cần tách ) đi thì nó lại báo lỗi không xuất ra được cái gì hếtXem tại bài : http://www.giaiphapexcel.com/forum/...Giúp-sửa-code-lọc-1-chuỗi-sang-1-bảng-dữ-liệu
Mã:
' hien tai Code nay Tach xong roi Cong don luon, em Muon sua lai Chi Tach ra thoi khong can Cong don
Sub tachdulieu()
Dim sArr(), dArr(), Tmp, Tem, MaHang As String, I As Long, J As Long, K As Long, R As Long
sArr = Range("a4:a22").Value ' input
R = UBound(sArr)
ReDim dArr(1 To R * 100, 1 To 4)
With CreateObject("Scripting.Dictionary")
For I = 2 To R
Tmp = Split(sArr(I, 1), ";")
For J = 0 To UBound(Tmp)
If Len(Tmp(J)) Then
Tem = Split(Tmp(J), "*"): MaHang = UCase(Tem(0))
If Not .Exists(MaHang) Then
K = K + 1: .Add MaHang, K
dArr(K, 1) = MaHang
End If
R = .Item(MaHang)
dArr(R, 2) = dArr(R, 2) + Val(Tem(1))
dArr(R, 3) = dArr(R, 3) + Val(Tem(2))
dArr(R, 4) = dArr(R, 4) + Val(Tem(3))
End If
Next J
Next I
End With
Range("N5:Q5").Resize(K) = dArr ' output
End Sub