Tran Thi Ngoc Han
Tran Thi Ngoc Han
Thảo luận 9 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 354 lượt xem

ví dụ e có group mã hàng BA001005 e muốn sử dụng code VBA để insert dòng tách

Thầy cho em hỏi, ví dụ e có group mã hàng BA001-005, e muốn sử dụng code VBA để insert dòng, tách group mã hàng thành từng mã riêng biệt thành BA001,BA002,BA003,BA004,BA005. Thầy giúp e với. Cám ơn thầy.
Thảo luận 9 câu trả lời
Lượt xem 354 lượt xem
Vỗ tay vỗ tay
Tran Thi Ngoc Han 08:02 - Feb 19, 2022

Chào bạn bạn đã có thể đẩy file hoặc hình ảnh lên giúp gitiho được không?

Còn theo ý hiểu gitiho bạn tách như sau

B1 tách ra ký tự cuối cùng trong Mã có dạng là BA001-005 Tách ra được ký tự cuối cùng là 5

Bước 2 chạy vòng lặp duyệt từ 1 đến ký tự cuối cùng

For i = 1 to 5

Next i

Bước 3 thay tên giá trị vào dạng "BA00"&i vào trong vòng lặp

Vỗ tay vỗ tay
Tran Thi Ngoc Han 08:02 - Feb 19, 2022

Option Explicit
Sub TachChuoi()
    Dim Sotach As Long, ChuoiTach As Variant
    Dim i As Long, Giatri As Long, Arr As Variant
    Sotach = Right(Sheet1.Range("A1").Value, 1)
    ChuoiTach = Split(Sheet1.Range("A1").Value, "-")(0)
    ReDim Arr(0 To Sotach - 1, 0 To 1)
    For i = 0 To Sotach - 1
        Arr(i, 0) = "BA" & Application.WorksheetFunction.Text(i + 1, "000")
    Next i
    Sheet1.Range("C1").Resize(i, 1).Value = Arr
End Sub
Vỗ tay vỗ tay
Tran Thi Ngoc Han 17:02 - Feb 20, 2022
e gửi thầy file hinh ảnh, cám ơn thấy đã hỗ trợ e.
Vỗ tay vỗ tay
Tran Thi Ngoc Han 17:02 - Feb 20, 2022
hình thứ 2 là kết quả em mong muốn đạt được khi chạy macro, mong thầy hỗ trợ em vấn đề này
Vỗ tay vỗ tay
Tran Thi Ngoc Han 10:02 - Feb 21, 2022

Mình đang không hiểu thuật toán bạn mong muốn ở đây là gì? Còn phần tách thì như code ở trên mình chỉ bạn đó

Vỗ tay vỗ tay
Tran Thi Ngoc Han 12:02 - Feb 21, 2022
thầy, code thầy hướng dẫn e là tách số cuối cùng và thực hiện vòng lặp bắt đầu từ 1 đến số cuối. nhưng ý e muốn là thực hiện vòng lặp từ số trước dấu - và kết thúc là số sau dấu -. ví dụ: mã hàng BC490MJ,order 003-005, khi chay code se tach ra thành BC490003MJ,BC490004MJ, BC490005MJ. và vấn đề thứ 2 e cần sự giúp đỡ của thầy là chọn ra ngày gần nhất. ví dụ: mã hàng BC490MJ, group oder 003-005, nhập hàng về 2lan, lần 1 vào ngay 3/1,lan 2 vao ngay 4/2, vay e muốn giữ row co ngay 4/2cho ma hàng bc490mj, group order 003-005, delete row nhap hàng ngày 3/1. thầy hỗ trợ e 2code riêng biệt nha. cám ơn thầy
Vỗ tay vỗ tay
Tran Thi Ngoc Han 13:02 - Feb 21, 2022

Chào bạn Bước 1 bạn làm theo phương pháp trên của mình

Đầu tiên vẫn phải tách mã trước nhé, bạn phải tách theo hàm Split nhé.

Tiếp theo bạn sử vòng lặp là xong.

Vỗ tay vỗ tay
Tran Thi Ngoc Han 15:02 - Feb 21, 2022
thầy e đã thử thay chỗ i=0 e thay bằng giá tri cua số tách đầu tiên mà code vẫn chạy bắt đầu từ 001-005, chứ k phai bắt đầu từ 003-005 nhu e muốn
Vỗ tay vỗ tay
Tran Thi Ngoc Han 16:02 - Feb 21, 2022

Chào bạn nếu có trường hợp 3 thì bạn thay vòng lặp với bắt đầu là 3 và kết thúc là 5 bạn cần tìm hai yếu tố nhé.

For i = batdau to ketthuc
// code ở trong này
Next i

Vỗ tay vỗ tay
Câu hỏi liên quan
© 2020 - Bản quyền của Công Ty Cổ Phần Công Nghệ Giáo Dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở Kế hoạch và Đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ Thông tin và Truyền thông