i did suggest passing the workbook to the sub, but if you do as torc suggests then you need to move the application.enableevents to where the workbook is opened
here is another option
vb Code:
  1. Sub open_workbooks()
  2.       Dim cell As Range
  3.        
  4.       For Each cell In Range("A2", Range("A2").End(xlDown))
  5.           Application.EnableEvents = False
  6.           Set w = Workbooks.Open(cell.Value)
  7.           Application.EnableEvents = True
  8.           update_Timer w
  9.           cell.Interior.Color = 13434828
  10.       Next cell
  11.        
  12.       End Sub
  13.        
  14.       Sub update_Timer(w As Workbook)
  15.       Dim vc As Object
  16.       Dim eend As Long
  17.       Dim mystr As String, repstr As String
  18.        
  19. '      If w.VBProject.VBComponents("XTAQ").codemodule.Find("TIMERSEC = 25", 1, 1, eend, 1, False, False, False) Then  'only do anything if that variable and value are found in the module
  20.       With w.VBProject.VBComponents("module1").codemodule
  21.           eend = .CountOfLines
  22.           mystr = .Lines(1, eend)
  23.           repstr = Replace(mystr, "mystr = 8", "mystr = 24")
  24.           .DeleteLines 1, eend
  25.           .InsertLines 1, repstr & vbNewLine & "'test done"
  26.       End With
  27.       w.Save
  28. '      End If
  29.       w.Close
  30.       End Sub