ممكن هذا الماكرو يحل المشكلة
Option Explicit
Sub eliminat_dup()
Dim xRg1, xRg2 As Range
Dim k1%, k2%, i%, j%
Dim Temp, m%, xx%: xx = 1
Dim c%, t%: t = [a11]
c = Cells(1, Columns.Count).End(1).Column
If c < 21 Then Exit Sub
Set xRg1 = Cells(1, 21).CurrentRegion
Set xRg2 = Cells(1, 21 + t + 1).CurrentRegion
k1 = xRg1.Rows.Count: k2 = xRg2.Rows.Count
'===============================
For i = 2 To k1
For j = 1 To t - 1
If xx >= k1 Then xx = 1
m = Application.CountIf(xRg1.Rows(i), xRg1.Cells(i, j))
If m > 1 Then
Temp = xRg1.Cells(i, j)
If (i + xx) < k1 \ 2 Then
xRg1.Cells(i, j) = xRg1.Cells(i + xx, j)
Else
xx = 1
xRg1.Cells(i, j) = xRg1.Cells(i + xx, j)
End If
xRg1.Cells(i + xx, j) = Temp
xx = xx + 1
End If
Next
Next
xx = 1
'==========================
For i = 2 To k2
For j = 1 To t - 1
If xx >= k2 Then xx = 1
m = Application.CountIf(xRg2.Rows(i), xRg2.Cells(i, j))
If m > 1 Then
Temp = xRg2.Cells(i, j)
If (i + xx) < k2 \ 2 Then
xRg1.Cells(i, j) = xRg2.Cells(i + xx, j)
Else
xx = 1
xRg1.Cells(i, j) = xRg2.Cells(i + xx, j)
End If
xRg2.Cells(i + xx, j) = Temp
xx = xx + 1
End If
Next
Next
'==============================
End Sub