Ошибка здесь:
Sheets("szTodayDate").Select
szTodayDate не является именем листа; это локальная переменная, которая содержит строку, представляющую имя листа ... но вы используете ее как строковый литерал, поэтому VBA пытается разыменовать объект листа, который в буквальном смысле называется "szTodayDate" ... и так как он не может найди его, бум, ошибка времени выполнения 9.
Удалить двойные кавычки:
Sheets(szTodayDate).Select
Теперь вы будете разыменовывать объект листа, названный в соответствии со значением строковой переменной szTodayDate , которая, вероятно, соответствует вашим намерениям.
Следующие шаги...
Потяните логику создания листа в свою отдельную процедуру; Написание небольших специализированных процедур, которые делают одно и делают это хорошо, значительно облегчат вашу жизнь.
Вы можете использовать возвращаемые значения функций: Worksheets.Add возвращает ссылку на созданный объект рабочего листа - записав эту ссылку в локальную переменную объекта, вы избавляетесь от необходимости Select ее, а затем отрабатывать ActiveSheet .
Вы также можете предоставить параметр назначения для Range.Copy , сделав всю операцию выбора-копирования-выбора-вставки одной строкой.
Public Function CreateReportSheet(ByVal reportDate As Date) As Worksheet
Dim reportSheet As Worksheet
Set reportSheet = AddNamedWorksheet(ThisWorkbook, Format$(reportDate, "dd.mm.yy"))
'only needed if the sheet doesn't exist at compile-time.
'if it *does* exist at compile-time, just set the sheet's (Name) property to "inputSheet".
'that identifier will then be globally available anywhere in the project.
'Dim inputSheet As Worksheet
'Set inputSheet = ThisWorkbook.Worksheets("DataInput")
inputSheet.Range("A:A").Copy reportSheet.Range("A:A")
Set CreateReportSheet = reportSheet
End Function
Public Function AddNamedWorksheet(ByVal wb As Workbook, ByVal sheetName As String) As Worksheet
Dim sheet As Worksheet
Set sheet = wb.Worksheets.Add
On Error Resume Next ' naming the sheet will throw if name already exists
sheet.Name = sheetName
On Error GoTo 0 ' restore error handling
Set AddNamedWorksheet = sheet
End Function