That is actually pretty darn good coding. I cleaned it up and added a few flourishes. I prefer to use the year-Month-Day format when naming files because it keeps them in true chronological order. I also generally use 2 digit years since they will be good for the next 100 years, at which time I suspect it will be someone else's problem. IF you put the Date after "Discrepancy Report," the files will be in "AR2" name order.
I did have to make an assumption about which sheet to pull AR2 from.
Option Explicit
Sub test()
Dim Wb As Workbook
Dim xWs As Worksheet
Dim DateBox As String
'Dim xDate As String
Dim xPath As String
xPath = ThisWorkbook.Path
datebox = InputBox("DISCREPANCY REPORTS: Please enter the current date")
'IF it should always be the day's Date, use
'xDate = Format(Date, "yy-mm-dd") 'to replace DateBox and Formatting in code below
'Uncomment below after testing
'Application.ScreenUpdating = False
'Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
If xWs.Name <> "MACROS" And xWs.Name <> "Flat File" And xWs.Name <> "DisInput" And xWs.Name <> "DisReport" Then
xWs.Cells.Copy Sheets("DisInput").Range("A1")
Application.Calculate
Sheets("DisReport").Copy
Application.ActiveWorkbook.SaveAs Filename:=xPath & "\" _
& Format(CDate(datebox), "yyyy-mm-dd") & "_" _
& Sheets("DisReport").Range("AR2") _
& "_Discrepancy Report" & ".xlsx"
Application.ActiveWorkbook.Close False
End If
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Windows("FF MACRO BOOK.xlsm").Activate
'ThisWorkbook.Activate
End Sub