Hoan Nguyen Khac
Hoan Nguyen Khac
Thảo luận 3 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 179 lượt xem

Sub MapDuLieu()Dim DongCuoi1 As LongDim DongCuoi2 As LongDim i As IntegerDim j As IntegerDongCuoi1

Sub MapDuLieu()
Dim DongCuoi1 As Long
Dim DongCuoi2 As Long
Dim i As Integer
Dim j As Integer
DongCuoi1 = ThisWorkbook.Sheets("Data").Range("A" & Rows.Count).End(xlUp).Row
DongCuoi2 = ThisWorkbook.Sheets("Map").Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To DongCuoi1
For j = 2 To DongCuoi2
If Worksheets("Data").Range("C" & i).Value = Worksheets("Map").Range("B" & j).Value Then
Worksheets("Data").Range("AI" & i).Value = Worksheets("Map").Range("E" & j).Value
End If
Next j
Next i
End Sub

Em dùng đoạn này để map dữ liệu giống như hàm vlookup nhưng tốc độ xử lý rất chậm ạ, mỗi sheet khoảng 5000 dòng, Thầy chỉ giúp em các tối ưu tốc độ với ạ. Em cảm ơn!

Thảo luận 3 câu trả lời
Lượt xem 179 lượt xem
Vỗ tay vỗ tay
Hoan Nguyen Khac 08:12 - Dec 02, 2020

việc sử dụng vòng lặp for thường tốc độ chậm, tối ưu chỉ nên for với giá trị dưới 100.

Với các mục đích dùng vòng lặp theo nhiều giá trị thì sử dụng vòng lặp Do sẽ tốt hơn, hoặc bạn tìm hiểu thêm về mảng trong VBA:

https://gitiho.com/blog/huong-dan-ve-...

việc dùng mảng sẽ nhanh hơn so với dùng Range

Vỗ tay vỗ tay
Hoan Nguyen Khac 20:12 - Dec 08, 2020

Thầy ơi, câu hỏi không liên quan đến bài lắm, nhưng muốn thầy tư vấn giúp ạ.  Em em sang năm thị đại học, định hướng học trường gì nghành gì mà có thể làm web viết code siêu như thầy được ạ. Để em định hướng cho em em ạ.

Em cảm ơn.

Vỗ tay vỗ tay
Hoan Nguyen Khac 09:12 - Dec 09, 2020

VBA chỉ là lập trình ở mức cơ bản thôi, và ứng dụng chủ yếu trong công việc văn phòng: kế toán, tài chính, xây dựng, marketing... chứ không phải về web.

Với làm web thì bạn sẽ học các ngôn ngữ lập trình khác. Có rất nhiều ngôn ngữ lập trình bạn nhé.

Nếu bạn yêu thích việc lập trình, phát triển tư duy làm việc tự động thì bạn có thể thi vào các trường có khoa CNTT (công nghệ thông tin). Tùy học lực bạn có thể chọn trường phù hợp.

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