Hỏi cách lấy số liệu bằng VBA

  • Thread starter luunghean29
  • Ngày gửi
L

luunghean29

Guest
28/11/16
4
0
1
33
Em có một bảng giá đất trên địa bàn. Em muốn so sánh STT sheet 1 với sheet 3. nếu trùng nhau thì sẽ lấy giá trị "giá đất" ở sheet 3 điền vào "giá đất" ở sheet 1 (cột AK). Anh chị nào biết cách chỉ cho em với, em cảm ơn nhiều.
 

Đính kèm

  • hoi sua pnn1.xls
    5 MB · Lượt xem: 25
Khóa học Quản trị dòng tiền
thinhvd

thinhvd

Cao cấp
25/11/09
1,336
234
63
Hà Nội
bluesofts.net
Em có một bảng giá đất trên địa bàn. Em muốn so sánh STT sheet 1 với sheet 3. nếu trùng nhau thì sẽ lấy giá trị "giá đất" ở sheet 3 điền vào "giá đất" ở sheet 1 (cột AK). Anh chị nào biết cách chỉ cho em với, em cảm ơn nhiều.
Bạn nên xem lại cách bố trí số liệu. tạo bảng số liệu khoa học và tối ưu hơn
Vì Sheet1 hơn 6000 dòng dữ liệu, Sheet3 45*294 => hơn 13 ngàn ô
Để dò được giá bằng cả cách dùng hàm hay dùng VBA thì đều bị treo máy hết (Để tìm ra 1 giá trị thì chạy vòng lặp qua 80 000 lần đối chiếu)
Bạn có thể thử dòng code dưới đây để trả nghiệm sự đơ máy
PHP:
Sub GetPrices()
Dim i As Long
Dim Cl As Range
Dim Rng As Range
Dim Sh1 As Worksheet
Dim Sh3 As Worksheet
Set Sh1 = ThisWorkbook.Sheets("Sheet1")
Set Sh3 = ThisWorkbook.Sheets("Sheet3")
Set Rng = Sh3.Range("B2:AS294")
For i = 2 To Sh1.Range("A" & Sh1.Rows.Count).End(xlUp).Row
    For Each Cl In Rng
        If Sh1.Cells(i, 1).Value = Cl.Value Then
            Sh1.Range("AK" & i).Value = Sh3.Cells(Cl.Row, Cl.Column).Value
        End If
    Next Cl
Next i
End Sub
 

Xem nhiều

Webketoan Zalo OA