KingVong,
To run the macro at night you need to add it as a scheduked task to your server or PC.
Steps are as follows:
You need to add a routine that you want to take place to the autoopen routine of your workbook, the code i am using is as follows:
Private Sub Workbook_Open()
Dim mydate As Date
mydate = Date
Sheets("sheet1"

.Activate
Application.Run ("BQ_UpdateWorkbook"

Sheets("sheet1"

.Copy
ActiveWorkbook.SaveAs ("F:\Process Support\Taps Balances\Taps Balances Report_" & Format(mydate, "dd-mm-yyyy"

)
application.quit
End Sub
This particular routine updates information from a business query workbook, copies the first sheet and paste it into a new workbook. It then quits excel.
To run this overnight you need to add two things to the scheduled task command line - firstly the excel.exe file (if you go through the scheduled task wizard this should be inserted when you select excel as the scheduled programme)
After this go to the command line and after the excel.exxe file enter the full file path of the individual excel file you wish to run eg:
"D:\Program Files\Office\Excel.exe" "F:\Business Objects\Documents\Bank Balances reports\bene_acct_trans_post_title.rep"
This should now open the required file at the specified time, which will invoke your autoopen routine and perform whatever task you have requested