Option Explicit[b]
Sub Para6() [/b]
Dim iJ As Long, iZ As Long
Dim KTh1 As Double, KTh2 As Double
Dim Rng1 As Range, Rng2 As Range, UniRng As Range, tRng As Range
Sheets("DuLieu").Select
Range("B300").Value = "''": Set tRng = Range("B300:E300")
For iJ = 2 To 20
KTh1 = Range("B" & iJ).Offset(0, 2).Value
Set Rng1 = Range("B" & iJ & ":E" & iJ)
For iZ = (iJ + 1) To 21
KTh2 = Range("B" & iZ).Offset(0, 2).Value
If KTh1 + KTh2 <= 6 Then
Set Rng2 = Range("B" & iZ & ":E" & iZ)
[COLOR="Blue"]'Bổ sung: [/COLOR]
Range("E300").Value = KTh1 + KTh2
If UniRng Is Nothing Then
Set UniRng = Union(Rng1, Rng2, tRng)
Else
Set UniRng = Union(UniRng, Rng1, Rng2, tRng)
End If
UniRng.Copy Destination:=Worksheets("KQ").Range("b55554").End(xlUp).Offset(1, 0)
End If
Set UniRng = Nothing
Next iZ, iJ
Set Rng1 = Nothing: Set Rng2 = Nothing
tRng.ClearContents: Set tRng = Nothing
[b]End Sub[/b]
Option Explicit: Option Base 1 [b]
Sub ParaMax()[/b]
ReDim MgRng(6): ReDim Chon(29) As Boolean
Dim iJ As Long, iZ As Long, iDem As Byte
Dim Rng1, Rng2, KTh1 As Double, KTh2 As Double, KTh As Double, KThTemp As Double
Sheets("DuLieu").Select
For iJ = 2 To 20
KTh1 = Range("B" & iJ).Offset(0, 2).Value
Rng1 = Range("B" & iJ).Value
For iZ = (iJ + 1) To 21
KTh2 = Range("B" & iZ).Offset(0, 2).Value
KTh = KTh1 + KTh2
If KTh >= KThTemp And Chon(iJ) = False And Chon(iZ) = False And KTh <= 6 Then
Chon(iJ) = True: Chon(iZ) = True
KThTemp = KTh
Rng2 = Range("B" & iZ).Value: iDem = 1 + iDem
Select Case iDem
Case 1
MgRng(1) = Rng1 & " " & Rng2 & " " & Str(KTh)
Case 2
MgRng(2) = MgRng(1)
MgRng(1) = Rng1 & " " & Rng2 & " " & Str(KTh)
Case 3
MgRng(3) = MgRng(2): MgRng(2) = MgRng(1)
MgRng(1) = Rng1 & " " & Rng2 & " " & Str(KTh)
Case 4
MgRng(4) = MgRng(3)
MgRng(3) = MgRng(2): MgRng(2) = MgRng(1)
MgRng(1) = Rng1 & " " & Rng2 & " " & Str(KTh)
Case 5
MgRng(5) = MgRng(4): MgRng(4) = MgRng(3)
MgRng(3) = MgRng(2): MgRng(2) = MgRng(1)
MgRng(1) = Rng1 & " " & Rng2 & " " & Str(KTh)
Case Is > 5
MgRng(6) = MgRng(5)
MgRng(5) = MgRng(4): MgRng(4) = MgRng(3)
MgRng(3) = MgRng(2): MgRng(2) = MgRng(1)
MgRng(1) = Rng1 & " " & Rng2 & " " & Str(KTh)
End Select
End If
Next iZ, iJ
Sheets("KQ").Select: Range("B4").Select
With Selection
.Value = MgRng(1): .Offset(1, 0).Value = MgRng(2)
.Offset(2, 0).Value = MgRng(3): .Offset(3, 0).Value = MgRng(4)
.Offset(4, 0).Value = MgRng(5): .Offset(5, 0).Value = MgRng(6)
End With
[b]End Sub [/b]
thực tế có hàng ngàn phần tử . SA_DQ xem có cách nào nữa ko?