Function Union_X(arg1 As Range, arg2 As Range, _
Optional arg3 As Range, Optional arg4 As Range, Optional arg5 As Range, _
Optional arg6 As Range, Optional arg7 As Range, Optional arg8 As Range, _
Optional arg9 As Range, Optional arg10 As Range, Optional arg11 As Range, _
Optional arg12 As Range, Optional arg13 As Range, Optional arg14 As Range, _
Optional arg15 As Range, Optional arg16 As Range, Optional arg17 As Range, _
Optional arg18 As Range, Optional arg19 As Range, Optional arg20 As Range, _
Optional arg21 As Range, Optional arg22 As Range, Optional arg23 As Range, _
Optional arg24 As Range, Optional arg25 As Range, Optional arg26 As Range, _
Optional arg27 As Range, Optional arg28 As Range, Optional arg29 As Range, _
Optional arg30 As Range) As Range
If arg1 Is Nothing And arg2 Is Nothing And arg3 Is Nothing And arg4 Is Nothing And _
arg5 Is Nothing And arg6 Is Nothing And arg7 Is Nothing And arg8 Is Nothing And _
arg9 Is Nothing And arg10 Is Nothing And arg11 Is Nothing And arg12 Is Nothing And _
arg13 Is Nothing And arg14 Is Nothing And arg15 Is Nothing And arg16 Is Nothing And _
arg17 Is Nothing And arg18 Is Nothing And arg19 Is Nothing And arg20 Is Nothing And _
arg21 Is Nothing And arg22 Is Nothing And arg23 Is Nothing And arg24 Is Nothing And _
arg25 Is Nothing And arg26 Is Nothing And arg27 Is Nothing And arg28 Is Nothing And _
arg29 Is Nothing And arg30 Is Nothing Then
Set Union_X = Nothing
Else
If arg1 Is Nothing Then
Set Union_X = Union_X(arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, _
arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, _
arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, _
arg26, arg27, arg28, arg29, arg30)
Else
Dim u As Range
Set u = Union_X(arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, _
arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, _
arg18, arg19, arg20, arg21, arg22, arg23, arg24, arg25, _
arg26, arg27, arg28, arg29, arg30)
If u Is Nothing Then
Set Union_X = arg1
Else
Set Union_X = Union(arg1, u)
End If
End If
End If
End Function