dangnguyenhai0704
Thành viên mới
- Tham gia
- 5/4/19
- Bài viết
- 10
- Được thích
- 3
Dữ liệu còn gì nhiều nữa không bạn? Nếu nhiêu đó thì cột phụ nối Imei và tên máy từ bảng dữ liệu, rồi vlookup ổn mà.Em có file này
Hàm:
=LOOKUP(2;1/FIND(G2;$B$2:$B$100)/(H2=$A$2:$A$100);$C$2:$C$100)
Hàm này khi dữ liệu lớn rất nặng, có cách nào để chuyển thành VBA hoặc cách khác nhẹ hơn không các anh
Sub GiaNhap()
Dim sArr(), dArr(), I&, J&
With Sheets("sheet1")
sArr = .Range("A1").CurrentRegion.Value
dArr = .Range("G1").CurrentRegion.Value
For I = 2 To UBound(dArr, 1)
For J = 2 To UBound(sArr, 1)
If dArr(I, 2) = sArr(J, 1) And InStr(sArr(J, 2), dArr(I, 1)) > 0 Then
dArr(I, 3) = sArr(J, 3)
End If
Next
Next
.Range("G1").CurrentRegion = dArr
End With
End Sub
Bác cho em khỏi chỗ khai báo biến khai báo sArr() nghĩa là gì ạ, em thấy họ hay khai báo là as một cái gì đó như là as long....mà ở đây mỗi dấu ()Dữ liệu còn gì nhiều nữa không bạn? Nếu nhiêu đó thì cột phụ nối Imei và tên máy từ bảng dữ liệu, rồi vlookup ổn mà.
vba:
PHP:Sub GiaNhap() Dim sArr(), dArr(), I&, J& With Sheets("sheet1") sArr = .Range("A1").CurrentRegion.Value dArr = .Range("G1").CurrentRegion.Value For I = 2 To UBound(dArr, 1) For J = 2 To UBound(sArr, 1) If dArr(I, 2) = sArr(J, 1) And InStr(sArr(J, 2), dArr(I, 1)) > 0 Then dArr(I, 3) = sArr(J, 3) End If Next Next .Range("G1").CurrentRegion = dArr End With End Sub
Đó là khai báo mảng, vì mảng có thể có nhiều kiểu dữ liệu trong đó nên không khai báo cụ thể đượcBác cho em khỏi chỗ khai báo biến khai báo sArr() nghĩa là gì ạ, em thấy họ hay khai báo là as một cái gì đó như là as long....mà ở đây mỗi dấu ()