Thanks for your prompt reply.
1. Your codes somehow was stuck in :
Set wkbSource = Workbooks.Open(strPath & strExtension, UpdateLinks:=False)
2. In any case, I find that your codes included :
Application.EnableEvents = False
so I just added this codes into my original macro, and the whole thing works again and the loop can stop after finishing opening each CAL files.
but I don't know why this EnableEvents is so important without which the loop will never end, but repeat again and again after after going through all the CAL files
Thanks anyway as at least I can sort out where the problem is.
Bookmarks