Perform loop through process on all sheets at once I have workbook having multiple sheets and having same data on it. Currently I am using macro that .autofilterand copy paste on respective sheets. I am using looping process like:-

   Sub SCRIPT()
    Application.ScreenUpdating = False
    Sheets("SCRIPT").Range("A3:P100").ClearContents
    Dim ws As Worksheet, lrc As Long, LR1 As Long, LR2 As Long
    Dim key1 As String
    key1 = InputBox("Type Script Name", "Title")
    For Each ws In ActiveWorkbook.Worksheets
    If (ws.Name &lt;&gt; "SCRIPT") And (ws.Name &lt;&gt; "MARKET") And (ws.Name &lt;&gt; "CHAIN") Then
    ws.Range("AE1:AJ500").ClearContents
    ws.Range("CB1:CH500").ClearContents
    ws.Range("A1").AutoFilter Field:=1, Criteria1:=key1
    ws.Range("A1").AutoFilter Field:=2, Criteria1:="28-Jan-16"
    lrc = ws.Range("D" &amp; Rows.Count).End(xlUp).Row
    ws.Range("D1:D" &amp; lrc).AutoFilter Field:=4, Criteria1:="CE"
    ws.Range("L2:L" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("AG2")
    ws.Range("C2:C" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("AE2")
    ws.Range("L2:L" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("CD2")
    ws.Range("C2:C" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("CB2")
    ws.Range("C2:C" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("AH2")
    ws.Range("I2:I" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("AJ2")
    ws.Range("I2:I" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("CH2")
    ws.Range("M2:M" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("CF2")
    AutoFilterMode = False
    ws.Range("D1:D" &amp; lrc).AutoFilter Field:=4, Criteria1:="PE"
    ws.Range("L2:L" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("AF2")
    ws.Range("L2:L" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("CC2")
    ws.Range("I2:I" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("AI2")
    ws.Range("I2:I" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("CG2")
    ws.Range("M2:M" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("CE2")
    AutoFilterMode = False
    ws.Range("A1").AutoFilter
    ws.Columns("AE:AJ").Sort key1:=ws.Columns("AE"), Order1:=xlDescending
    ws.Columns("CB:CH").Sort key1:=ws.Columns("CB"), Order1:=xlDescending

    ws.Range("P1").AutoFilter Field:=1, Criteria1:=key1
    ws.Range("P1").AutoFilter Field:=2, Criteria1:="EQ"
    ws.Range("R2:U" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("AM2")
    ws.Range("Z2:Z" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("AL2")
    ws.Range("P2:P" &amp; lrc).SpecialCells(xlCellTypeVisible).Copy Destination:=ws.Range("AK2")
    AutoFilterMode = False
    ws.Range("P1").AutoFilter
    End If

    If (ws.Name &lt;&gt; "SCRIPT") And (ws.Name &lt;&gt; "MARKET") And (ws.Name &lt;&gt; "CHAIN") Then
    LR1 = Sheets("SCRIPT").Range("A" &amp; Rows.Count).End(xlUp).Row + 1
    LR2 = ws.Range("D" &amp; Rows.Count).End(xlUp).Row
    ws.Range("AK2:AZ" &amp; LR2).Copy
    Sheets("SCRIPT").Range("A" &amp; LR1).PasteSpecial xlPasteValues
    ws.Range("AK2:AR" &amp; LR2).Copy
    Sheets("CHAIN").Range("A" &amp; LR1).PasteSpecial xlPasteValues
    End If

    Application.CutCopyMode = False
    Next ws
    Application.Goto (ActiveWorkbook.Sheets("SCRIPT").Range("A1"))
    Application.Goto (ActiveWorkbook.Sheets("CHAIN").Range("A1"))
    Application.ScreenUpdating = True
    End Sub


Filtering huge data on each sheet. Therefore takes lot of time to finished process while looping each sheet. Does there any other way that perform looping task on all sheets at once?
I'll take a crack at this. First things first - always qualify where you're doing something e.g. AutoFilterMode = False should be ws.AutoFilterMode = False.
Your variable names are lacking - lrc, LR1 and LR2 give me no idea as to what they are being used for or if they are different from one another. Same goes for key1 - it's for a &quot;Script Name&quot; according to the inputbox, so why not name is ScriptName or ScriptNameKey? And ws as Worksheet, why not say MyWorksheet or CurrentWorksheet?
You're clearing out Sheets(&quot;SCRIPT&quot;) but I don't know why, I don't see anything going back to it.
Your indentation is difficult to follow, your for loops and if blocks should be offset like this -
key1 = InputBox(&quot;Type Script Name&quot;, &quot;Title&quot;)
    
    For Each ws In ActiveWorkbook.Worksheets
         If (ws.Name &lt;&gt; &quot;SCRIPT&quot;) And (ws.Name &lt;&gt; &quot;MARKET&quot;) And (ws.Name &lt;&gt; &quot;CHAIN&quot;) Then
              ws.Range(&quot;AE1:AJ500&quot;).ClearContents
              ws.Range(&quot;CB1:CH500&quot;).ClearContents
         End If
    Next

It makes it a lot easier to read. You can actually indent several lines in the VBE by highlighting and hitting Tab.
When you're working with all those .Range elements, you can use a With block -
 key1 = InputBox(&quot;Type Script Name&quot;, &quot;Title&quot;)
    
        For Each ws In ActiveWorkbook.Worksheets
            If (ws.Name &lt;&gt; &quot;SCRIPT&quot;) And (ws.Name &lt;&gt; &quot;MARKET&quot;) And (ws.Name &lt;&gt; &quot;CHAIN&quot;) Then
                With ws
                    .Range(&quot;AE1:AJ500&quot;).ClearContents
                    
                    .Range(&quot;P1&quot;).AutoFilter
                End With
            End If
         Next

This will make it less cluttered. You should also use some comments to explain why things are happening -
 'These ranges need to be cleared to ensure the formatting of xxx doesn't change as it reaches the destination
 .Range(&quot;AE1:AJ500&quot;).ClearContents
 .Range(&quot;CB1:CH500&quot;).ClearContents
 'We filter on these two criteria because that allows ....
 .Range(&quot;A1&quot;).AutoFilter Field:=1, Criteria1:=key1
 .Range(&quot;A1&quot;).AutoFilter Field:=2, Criteria1:=&quot;28-Jan-16&quot;

Speaking of your autofilters why not
Dim FilterDate as Date
FilterDate = Now() 'or whatever the date needs to be 

Now you don't have to go into the code to find it.
The same goes for your second criteria, why not give those variables at the top as strings and then use the variables, that way if anything changes you can just change it at the top.
In your second If block you are moving between ws and two defined sheets. Why not give those sheets a variable as well?
Personally I don't like all the .Copy Destination methods. I like to work directly with the locations like this -
.Range(&quot;AG2&quot;) = .Range(&quot;L2:L&quot; &amp; lrc).SpecialCells(xlCellTypeVisible)
.Range(&quot;AE2&quot;) = .Range(&quot;C2:C&quot; &amp; lrc).SpecialCells(xlCellTypeVisible)
.Range(&quot;CD2&quot;) = .Range(&quot;L2:L&quot; &amp; lrc).SpecialCells(xlCellTypeVisible)

This has the added benefit that if you want to change the worksheets within your If block, you can just slap on a sheet variable.
Also what's up with this -
Application.Goto (ActiveWorkbook.Sheets(&quot;SCRIPT&quot;).Range(&quot;A1&quot;))
Application.Goto (ActiveWorkbook.Sheets(&quot;CHAIN&quot;).Range(&quot;A1&quot;))

The second one negates the first one, or are you just making sure nothing is still selected on those sheets? Nothing should be .Selected anyway.
If you need some more speed try doing these along with ScreenUpdating
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False

Just remember to turn them back on when you're finished.
One more thing, I don't see any error handling, what happens if there's an error? It will stop and you'll need to loop through all the sheets again once it's fixed.
Oh - also use Option Explicit on the top, you may have caught some of the things I mentioned just by compiling with that engaged.