The best (and really, the only) approach is to assign a variable to each of the workbooks, and make sure that you properly reference each of them whenever you do some kind of operation. So for example, you want to copy from Sheet1 in Workbook1 to Sheet 1 in Workbook2. You're going to need to fight the temptation to just 'skip' the full reference (e.g., by using the terms ActiveWorkbook or ActiveSheet.).
You can assign these variables when you're opening the workbooks,even. For example:
VBA Code:
Dim WB1 As Workbook, WS1 As WorkSheet
Dim WB2 As Workbook, WS2 As WorkSheet
Dim WB3 As Workbook, WS3 As WorkSheet
Dim MasterWB As Workbook, MasterWS As WorkSheet
Set MasterWB = Application.ThisWorkbook
Set MasterWS = MasterWB.Sheets("Master")
Set WB1 = Application.Workbooks.Open("D:\SalsaDancing.xlsm")
Set WS1 = WB1.Sheets("Lesson Fees")
Set WB2 = Application.Workbooks.Open("D:\TangoDancing.xlsm")
Set WS2 = WB2.Sheets("Student Tuition")
Set WB3 = Application.Workbooks.Open("D:\TapDancing.xlsm")
Set WS3 = WB3.Sheets("Accounts Payable")
WS1.Move MasterWS
WS2.Move MasterWS
WB1.Close True ' <- Closes the WB and Saves and changes
WB2.Close True ' <- Closes the WB and Saves and changes
WB3.Close False ' <- Closes the WB and Saves and [B]does not[/B] save changes
MasterWB.Save
Does that make sense? I hope it helps.