vuasutu102tp1
Thành viên mới

- Tham gia
- 7/4/21
- Bài viết
- 16
- Được thích
- 0
Chạy codeEm có bảng số 100 ô ở cột A và 100 ô ở cột B (tất cả đều là số nguyên)
Các bác giúp e: Lấy 1 ô của cột A trừ đi 1 ô ở cột B sao cho hiệu <19 (1 ô chỉ được dùng 1 lần) sao cho số cặp thỏa mãn là lớn nhất
Sub ABC()
Dim sArr(), Res(), i&, r&
Res = Range("A1:B100").Value
Range("A1:A100").Sort [A1], 2
Range("B1:B100").Sort [B1], 2
sArr = Range("A1:B100").Value
Range("A1:B100").Value = Res
ReDim Res(1 To 100, 1 To 2)
r = 1
Do While i < 100 And r <= 100
i = i + 1
If sArr(i, 1) - sArr(r, 2) < 19 Then
k = k + 1
Res(k, 1) = sArr(i, 1)
Res(k, 2) = sArr(r, 2)
r = r + 1
End If
Loop
Range("D1").Resize(100, 2) = Res
End Sub
Em làm được rồi ạ. Em cảm ơn bác nhéChạy code
Mã:Sub ABC() Dim sArr(), Res(), i&, r& Res = Range("A1:B100").Value Range("A1:A100").Sort [A1], 2 Range("B1:B100").Sort [B1], 2 sArr = Range("A1:B100").Value Range("A1:B100").Value = Res ReDim Res(1 To 100, 1 To 2) r = 1 Do While i < 100 And r <= 100 i = i + 1 If sArr(i, 1) - sArr(r, 2) < 19 Then k = k + 1 Res(k, 1) = sArr(i, 1) Res(k, 2) = sArr(r, 2) r = r + 1 End If Loop Range("D1").Resize(100, 2) = Res End Sub