Xin các anh chị giúp code cho nút TIM, code dò các giá trị cột A, cột B và điền vào BẢNG GIÁ TRỊ (Nội dung như file đính kèm)![]()
Public Sub GPE()
Dim sArr(), dArr(1 To 1000, 1 To 12), I As Long, K As Long, Col As Long, Tem
sArr = Range([A2], [B65536].End(xlUp)).Value
On Error Resume Next
For I = 1 To UBound(sArr, 1)
If sArr(I, 2) = Empty Then
K = K + 1
dArr(K, 1) = K
dArr(K, 2) = sArr(I, 1)
Else
Tem = Split(sArr(I, 1), Space(1))
Col = Tem(UBound(Tem)) + 2
dArr(K, Col) = sArr(I, 2)
End If
Next I
[E3].Resize(K, 12) = dArr
End Sub


[TABLE="width: 537"]
[TR]
[TD]Xin Bác BA TÊ mở rộng code thêm:[/TD]
[/TR]
[TR]
[TD]+ Điền luôn các text: giá trị 1, giá trị 2, giá trị 3… vào các ô tương ứng G2, H2, I2…. [/TD]
[/TR]
[TR]
[TD]+ Nếu không dừng ở giá trị 10 mà thêm giá trị 11. giá trị 12 hoặc nhiều hơn nữa thì sao?[/TD]
[/TR]
[TR]
[TD][/TD]
[/TR]
[/TABLE]


Gán vào đâu đó tuỳ bạn, chạy thử Sub này coi có đúng kết quả không.
PHP:Public Sub GPE() Dim sArr(), dArr(1 To 1000, 1 To 12), I As Long, K As Long, Col As Long, Tem sArr = Range([A2], [B65536].End(xlUp)).Value On Error Resume Next For I = 1 To UBound(sArr, 1) If sArr(I, 2) = Empty Then K = K + 1 dArr(K, 1) = K dArr(K, 2) = sArr(I, 1) Else Tem = Split(sArr(I, 1), Space(1)) Col = Tem(UBound(Tem)) + 2 dArr(K, Col) = sArr(I, 2) End If Next I [E3].Resize(K, 12) = dArr End Sub
Chào Anh,
em có thắc mắc về dòng code mong Anh giải đáp thêm!
1.sArr = Range([A2], [B65536].End(xlUp)).Value
Có phải dòng Code này để tạo một mảng 2 chiều cho mảng sArr phải không?
2.For I = 1 To UBound(sArr, 1)
Dòng này thì cho biến I chạy trong mảng 1 chiều hay sao ạ? khúc này em chưa hiểu lắm UBound(sArr, 1). tham số 1 ở đây có ý nghĩa gì?
3.Col = Tem(UBound(Tem)) + 2
Đoạn này thì thực hiện lệnh gì à.
Mong Anh hướng dẫn thêm!


Chời đất!
Hỏi tui cũng bằng không. Tui chỉ học lóm trên GPE này thôi chứ chẳng có trường lớp, chẳng có "thầy" nào giảng hết làm sao hiểu đúng mà giải thích lại cho người khác. Lỡ giải thích "tầm bậy" thì sao.
Hiểu kiểu "hai lúa" thì vầy:
1/ Gán mảng sArr = giá trị của 1 vùng từ ô A2 đến ô cuối cùng có dữ liệu của cột B
2/ Ubound(sArr,1) là số phần tử theo chiều dọc (dòng) của mảng sArr, Ubound(sArr,2) là số phần tử theo chiều ngang (cột)...
3/ Biến Tem lúc này là 1 mảng 1 chiều, Col lấy giá trị cuối của mảng Tem cộng thêm ...
Hết thuốc!