Have run into a similiar problem when dynamically adding oleobjects. Maybe the same workaround will work here? Obviously, when you go into design mode, your project loses state. All variables have to be reassigned.
<table width="100%" border="1" bgcolor="White" style="filter

rogid:DXImageTransform.Microsoft.Gradient(endColorstr='#C0CFE2', startColorstr='#FFFFFF', gradientType='0');"><tr><TD><font size="2" face=Courier New> <font color="#0000A0">Option</font> <font color="#0000A0">Explicit</font>
<font color="#0000A0">Const</font> fp <font color="#0000A0">As</font> <font color="#0000A0">String</font> = "J:\Paper Sections\pressrun\"
<font color="#0000A0">Sub</font> GetPressRunPart1()
<font color="#0000A0">On</font> <font color="#0000A0">Error</font> <font color="#0000A0">Resume</font> <font color="#0000A0">Next</font>
<font color="#0000A0">Dim</font> li <font color="#0000A0">As</font> Range, dt <font color="#0000A0">As</font> Date, fn <font color="#0000A0">As</font> <font color="#0000A0">String</font>
<font color="#0000A0">Set</font> li = Cells(ActiveCell.Row, 1)
dt = li
fn = "Run Sheet (" & Format(dt, "m-d-yyyy") & ").xls"
<font color="#0000A0">If</font> Dir(fp & fn) <> "" <font color="#0000A0">Then</font>
Workbooks.Open fp & fn
<font color="#008000">' you may need to add a second to now such as</font>
<font color="#008000">' Now + TimeSerial(0, 0, 1)</font>
<font color="#008000">' procede procedure name with codename if your code is in a public object module</font>
<font color="#008000">' Application.OnTime Now, "ThisWorkbook.GetPressRunPart2"</font>
Application.OnTime Now, "GetPressRunPart2"
<font color="#0000A0">Exit</font> <font color="#0000A0">Sub</font>
<font color="#0000A0">Else</font>
MsgBox "Press Run for date " & dt & " does not exist", vbExclamation
<font color="#0000A0">Exit</font> <font color="#0000A0">Sub</font>
<font color="#0000A0">End</font> <font color="#0000A0">If</font>
GetPressRunPart2
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
<font color="#0000A0">Sub</font> GetPressRunPart2()
<font color="#0000A0">On</font> <font color="#0000A0">Error</font> <font color="#0000A0">Resume</font> <font color="#0000A0">Next</font>
<font color="#0000A0">Dim</font> li <font color="#0000A0">As</font> Range, dt <font color="#0000A0">As</font> Date, cf <font color="#0000A0">As</font> String, fn <font color="#0000A0">As</font> <font color="#0000A0">String</font>
<font color="#0000A0">Set</font> li = Cells(ActiveCell.Row, 1)
dt = li
fn = "Run Sheet (" & Format(dt, "m-d-yyyy") & ").xls"
<font color="#008000"> 'Checkpoint #1</font>
cf = ActiveWorkbook.Name
MsgBox cf
<font color="#0000A0">With</font> Workbooks(fn).Sheets(1)
li.Offset(, 1) = .Range("E34")
li.Offset(, 4) = .Range("E25")
li.Offset(, 12) = .Range("E29") + .Range("E30")
<font color="#0000A0">End</font> <font color="#0000A0">With</font>
Workbooks(fn).Close <font color="#0000A0">False</font>
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
</FONT></td></tr></table><button onclick='document.all("1031200785857396").value=document.all("1031200785857396").value.replace(/<br \/>\s\s/g,"");document.all("1031200785857396").value=document.all("1031200785857396").value.replace(/<br \/>/g,"");window.clipboardData.setData("Text",document.all("1031200785857396").value);'>Copy to Clipboard</BUTTON><textarea style="position:absolute;visibility:hidden" name="1031200785857396" wrap="virtual">
Option Explicit
Const fp As String = "J:\Paper Sections\pressrun\"
Sub GetPressRunPart1()
On Error Resume Next
Dim li As Range, dt As Date, fn As String
Set li = Cells(ActiveCell.Row, 1)
dt = li
fn = "Run Sheet (" & Format(dt, "m-d-yyyy") & ").xls"
If Dir(fp & fn) <> "" Then
Workbooks.Open fp & fn
' you may need to add a second to now such as
' Now + TimeSerial(0, 0, 1)
' procede procedure name with codename if your code is in a public object module
' Application.OnTime Now, "ThisWorkbook.GetPressRunPart2"
Application.OnTime Now, "GetPressRunPart2"
Exit Sub
Else
MsgBox "Press Run for date " & dt & " does not exist", vbExclamation
Exit Sub
End If
GetPressRunPart2
End Sub
Sub GetPressRunPart2()
On Error Resume Next
Dim li As Range, dt As Date, cf As String, fn As String
Set li = Cells(ActiveCell.Row, 1)
dt = li
fn = "Run Sheet (" & Format(dt, "m-d-yyyy") & ").xls"
'Checkpoint #1
cf = ActiveWorkbook.Name
MsgBox cf
With Workbooks(fn).Sheets(1)
li.Offset(, 1) = .Range("E34")
li.Offset(, 4) = .Range("E25")
li.Offset(, 12) = .Range("E29") + .Range("E30")
End With
Workbooks(fn).Close False
End Sub
</textarea>