title: How can I call Workbook_Open on Workbook A from Workbook B?
body: <p>My situation is that I am trying to open Workbook A from Workbook B and run the Workbook_Open subroutine.  The issue with just simply using <code>Workbooks.Open("c:\myworkbook.xls")</code> is that I need to plant data in Workbook A before the <code>Workbook_Open</code> subroutine runs.</p>
  
  <p>I have two ideas, neither of which I particularly like, so I was wondering if there was a better way.  My two ideas are as follows.</p>
  
  <p><strong>Option 1: Open Workbook A with macros disabled, plant the data, save and close the workbook then re-open it with macros enabled.</strong>  The reasons I would prefer not to do this is: I am dealing with a .xls file that has a fair amount of formatting (basically I am simulating how a human would use it thousands of times over) and saving the file thousands of times may cause the file to corrupt.  Additionally this takes a fair amount of time to open the workbook twice, and it does not seem at all efficient to me.  One of the big points of emphasis is speed and efficiency with the quickest turnaround time.</p>
  
  <p><strong>Option 2: Duplicate the Workbook_Open code as a public subroutine in elsewhere within a module.</strong>  This is the more desirable of the two, but the issue is I do not necessarily have permission to perform this action and doing this will involve plenty of red tape, red flags, etc.</p>
  
  <p>Is there any way to do something like this:</p>
  
  <pre><code>Workbooks("Workbook A").Application.Run (Workbooks("Workbook A").Workbook_Open)
  </code></pre>