Sub ThayKT()
Dim Rng As Range, Arr(), i As Long, k As Integer, T1 As String, T2 As String, T3
Dim L11 As String, L12 As String, L21 As String, L22 As String, L31 As String, L32 As String
If Range("A65500").End(xlUp).Row < 2 Then Exit Sub
Set Rng = Range("A2:A" & Range("A65500").End(xlUp).Row)
ReDim Arr(1 To Rng.Rows.Count, 1 To 4)
L11 = Range("B2").Value: L12 = Range("G2").Value
L21 = Range("C2").Value: L22 = Range("D2").Value
L31 = Range("E2").Value: L32 = Range("f2").Value
L32 = Replace(Replace(Replace(Replace(L32, ", ", ","), " ,", ""), Chr(148), ""), Chr(147), "")
L12 = Replace(Replace(Replace(Replace(L12, ",", "a", 1, 1), ",", "b", 1, 1), ",", "a", 1, 1), "b", ",", 1, 1)
L12 = Replace(Replace(Replace(Replace(L12, ", ", ","), " ,", ""), Chr(148), ""), Chr(147), "")
L12 = Replace(Replace(L12, ",", ";"), "a", ",")
T3 = Split(L32, ",")
T4 = Split(L12, ";")
For i = 1 To UBound(Arr)
Arr(i, 1) = Rng(i, 1): Arr(i, 2) = Rng(i, 1)
Arr(i, 3) = Rng(i, 1): Arr(i, 4) = Rng(i, 1)
T1 = Mid(L31, Int(Len(L31) * Rnd() + 1), 1)
T2 = Mid(L31, Int(Len(L31) * Rnd() + 1), 1)
For k = 1 To Len(Arr(i, 1))
If Mid(Rng(i, 1), k, 1) = "." Then
Mid(Arr(i, 1), k, 1) = Mid(L11, Int(Len(L11) * Rnd() + 1), 1)
Mid(Arr(i, 2), k, 1) = Mid(L11, Int(Len(L11) * Rnd() + 1), 1)
Mid(Arr(i, 3), k, 1) = Mid(L11, Int(Len(L11) * Rnd() + 1), 1)
ElseIf Mid(Rng(i, 1), k, 1) = "0" Then
Mid(Arr(i, 1), k, 1) = Mid(L21, Int(Len(L21) * Rnd() + 1), 1)
Mid(Arr(i, 2), k, 1) = Mid(L22, Int(Len(L22) * Rnd() + 1), 1)
Mid(Arr(i, 3), k, 1) = Mid(L22, Int(Len(L22) * Rnd() + 1), 1)
Mid(Arr(i, 4), k, 1) = Mid(L22, Int(Len(L22) * Rnd() + 1), 1)
ElseIf Mid(Rng(i, 1), k, 1) = "=" Then
Mid(Arr(i, 1), k, 1) = T1
Mid(Arr(i, 2), k, 1) = T2
End If
Next k
For k = 1 To Len(Arr(i, 3))
If Mid(Arr(i, 3), k, 1) = "=" Then
Arr(i, 3) = Replace(Arr(i, 3), "=", T3(Int((UBound(T3) + 1) * Rnd())), 1, 1)
End If
Next k
For k = 1 To Len(Arr(i, 4))
If Mid(Arr(i, 4), k, 1) = "=" Then
Arr(i, 4) = Replace(Arr(i, 4), "=", T3(Int((UBound(T3) + 1) * Rnd())), 1, 1)
End If
Next k
For k = 1 To Len(Arr(i, 4))
If Mid(Arr(i, 4), k, 1) = "." Then
Arr(i, 4) = Replace(Arr(i, 4), ".", T4(Int((UBound(T4) + 1) * Rnd())), 1, 1)
End If
Next k
Next i
Range("H2").Resize(UBound(Arr), 4) = Arr
Erase Arr: Set Rng = Nothing
End Sub