With the below Code, it needs all 3 fields (MY, Order, Quantity) to be entered a value to populate final filtered data. I want the code to have flexibility to run with either 1 ,2 or 3 selections (i.e if Only MY and Order is selected or Just MY or all three) Please help!

----------------------------------------------------------------------------------------------------------
Sub Filter_Data()

Dim All_Data_sh As Worksheet
Dim Filter_sh As Worksheet
Dim Output_sh As Worksheet

Set All_Data_sh = ThisWorkbook.Sheets("All_Data")
Set Filter_sh = ThisWorkbook.Sheets("Filter")
Set Output_sh = ThisWorkbook.Sheets("Output")

Output_sh.UsedRange.Clear

All_Data_sh.AutoFilterMode = False

Dim MY() As String
Dim Order() As String
Dim Quantity() As String

Dim n As Integer
n = Application.WorksheetFunction.CountA(Filter_sh.Range("A:C")) - 2
ReDim MY(n) As String
ReDim Order(n) As String
ReDim Quantity(n) As String

Dim i As Integer
For i = 0 To n
MY(i) = Filter_sh.Range("A" & i + 2)
Order(i) = Filter_sh.Range("B" & i + 2)
Quantity(i) = Filter_sh.Range("C" & i + 2)

Next i


All_Data_sh.UsedRange.AutoFilter 1, MY(), xlFilterValues
All_Data_sh.UsedRange.AutoFilter 2, Order(), xlFilterValues
All_Data_sh.UsedRange.AutoFilter 3, Quantity(), xlFilterValues

All_Data_sh.UsedRange.Copy Output_sh.Range("A1")

All_Data_sh.AutoFilterMode = False

MsgBox ("Data Filtered")

End Sub