Using "Where clause" In OPENROWSET as variable
I've solved my own problem by rewriting my code like this:

DECLARE @date DATETIME

SET @date = getdate()

DECLARE @SQL NVARCHAR(MAX) = ' SELECT * ,' + QUOTENAME(@ExcelName, '''') + ' AS ExcelName ,' + QUOTENAME(@date, '''') + ' AS TimeStamp 
    INTO #TTT
     from openrowset(''' + @Provider + ''',''Excel 8.0;Database=' + @FileName + ';hdr=' + @Header + '' + ''',
                     ''select * from [' + @SheetName + '$]'')' + @WhereClause + ';
     insert into ' + @TableName + '
     select * 
     from #TTT
     drop Table #TTT'

PRINT @SQL

EXEC (@SQL)