title: Run a Macro from Another Workbook
body: <p>I have a macro in workbook A that calls a macro in workbook B.  I want the macro in workbook B to run and then I want to close workbook B.  I keep getting an error saying the macro cannot be found that I want to run from workbook B.  I am pretty much a novice at this, but I have done a pretty thorough search and haven't been able to come up with anything on my own.  Here is my code in it's entirety.</p>
  
  <pre><code>Public Sub InputDept()
  
  
  Dim Cap As Workbook
  Dim Cap2 As String
  
  On Error Resume Next
  Set Cap = Workbooks("NGD Source File for Net Budget Reporting.xlsx")
  Cap2 = Cap.Name
  On Error GoTo 0
  
  Dim wb As Workbook
  Dim Cap1 As Variant
  
  Application.ScreenUpdating = False
  If Cap Is Nothing Then
  Cap1 = Application.GetOpenFilename("Excel Files(*.xl*)," &amp; "*.xl*", 1)
      If Cap1 = False Then
      Exit Sub
      End If
  Set wb = Workbooks.Open(Cap1)
  Cap2 = ActiveWorkbook.Name
  Else
  Workbooks(Cap2).Activate
  End If
  
  
  Sheets("Dept Summary").Activate
  
  
  Cells.Find(What:="Direct", after:=ActiveCell, LookIn:=xlFormulas, _
      LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
      MatchCase:=False, SearchFormat:=False).Offset(1, 0).Select
  
  Range(Selection, Selection.End(xlDown)).Select
  
  Dim cRng As Range
  Dim dRng As Range
  
  Set dRng = Selection
  
  For Each cRng In dRng
  If cRng.Interior.ThemeColor = xlThemeColorAccent3 Then
  
  
      Dim mCalc As String
      Dim mSum As Workbook
  
      On Error Resume Next
      Set mSum = Workbooks("Master Calc with Macro.xlsm")
      mCalc = mSum.Name
      On Error GoTo 0
  
      Application.ScreenUpdating = False
      If mSum Is Nothing Then
          mSum1 = Application.GetOpenFilename("Excel Files.xl*),"&amp; "*.xl*", 1)
      If mSum1 = False Then
          Exit Sub
      End If
          Set wb1 = Workbooks.Open(mSum1)
          mCalc = ActiveWorkbook.Name
      Else
          Workbooks(mCalc).Activate
      End If
  
      cRng.Copy
  
      Workbooks(mCalc).Activate
      Sheets("Data").Select
      Range("A5").Select
  
      Selection.PasteSpecial Paste:=xlPasteValues
      Sheets("Report").Activate
  
      Workbooks(mCalc).Application.Run ("!SummarizeMaster")
  
      Sheets("Report").Select
      ActiveSheet.Copy
      Cells.Select
      Cells.Copy
      Selection.PasteSpecial Paste:=xlPasteValues
      ActiveWorkbook.SaveAs _
          Filename:=Application.ThisWorkbook.Path &amp; "\" &amp; Format(Date -        28, "MMM") &amp; " Files\" &amp; Left(cRng, 7) &amp; ".xlsx"
  
      ActiveWorkbook.Close
  
      Workbooks(mCalc).Close savechanges:=False
  
  End If
  Next cRng
  
  
  
  End Sub
  </code></pre>