giahuyks93
Thành viên mới

- Tham gia
- 24/10/15
- Bài viết
- 34
- Được thích
- 0
Public Sub GPE_MAX()
Dim Dic As Object, sArr(), dArr(), I As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range("A6", Range("A6").End(xlDown)).Resize(, 4).Value
ReDim dArr(1 To UBound(sArr), 1 To 1)
For I = 1 To UBound(sArr)
Tem = sArr(I, 1) & sArr(I, 2)
If Abs(sArr(I, 4)) > Dic.Item(Tem) Then Dic.Item(Tem) = Abs(sArr(I, 4))
Next I
For I = 1 To UBound(sArr)
Tem = sArr(I, 1) & sArr(I, 2)
dArr(I, 1) = Dic.Item(Tem)
Next I
Range("F6").Resize(I - 1) = dArr
Set Dic = Nothing
End Sub
em có hiện hữu 1 cái code sử dụng Dic
em tìm hiểu nhưng không hiểu ý nghĩa dòng tô đỏ .mong a/c giúp em khai sáng với ạ
vấn đề 1 : Ubound là duyệt từ dòng 1 đến dòng cuối ,nhưng 1 to Ubound ý nghĩa là như thế nào ạ sau đó là 1 to 1 là đề cập đến hệ số nào ạ ?
vấn đề 2 : nguyên cái dòng if đó thật sự e khó hiểu quá ? mong a/c dành ít thời gian khai sáng giúp em ?
đây là file excel đính kèm ạ
Dim Dic As Object, sArr(), dArr(), I As Long, Tem As String
Set Dic = CreateObject("Scripting.Dictionary")
sArr = Range("A6", Range("A6").End(xlDown)).Resize(, 4).Value
ReDim dArr(1 To UBound(sArr), 1 To 1)
For I = 1 To UBound(sArr)
Tem = sArr(I, 1) & sArr(I, 2)
If Abs(sArr(I, 4)) > Dic.Item(Tem) Then Dic.Item(Tem) = Abs(sArr(I, 4))
Next I
For I = 1 To UBound(sArr)
Tem = sArr(I, 1) & sArr(I, 2)
dArr(I, 1) = Dic.Item(Tem)
Next I
Range("F6").Resize(I - 1) = dArr
Set Dic = Nothing
End Sub
em có hiện hữu 1 cái code sử dụng Dic
em tìm hiểu nhưng không hiểu ý nghĩa dòng tô đỏ .mong a/c giúp em khai sáng với ạ
vấn đề 1 : Ubound là duyệt từ dòng 1 đến dòng cuối ,nhưng 1 to Ubound ý nghĩa là như thế nào ạ sau đó là 1 to 1 là đề cập đến hệ số nào ạ ?
vấn đề 2 : nguyên cái dòng if đó thật sự e khó hiểu quá ? mong a/c dành ít thời gian khai sáng giúp em ?
đây là file excel đính kèm ạ