通过.Net生成Excel做奇怪的事情

早上好,
我有一个奇怪的事情发生在我通过.Net创build的Excel WorkSheet中。 我加载一个现有的工作簿

Dim _xlApp As New Excel.Application Dim _xlWorkbook As Excel.WokBook = _xlApp.Workbooks.Open(_templateFileName) 

在填充之前将其设置为可见(用于debugging目的)

 _xlApp.Visible = True 

然后我继续填充现有的模板。

 Private Sub GenerateOceanFreightGrid() Dim columnCount As Integer = 4 ' _standardColumnCount Dim columnInsertPosition As Integer = 5 If MyBooleanValue() Then _xlSheet.Columns(4).Insert() _xlSheet.Cells(7, 4) = "My Header Value" columnInsertPosition += 1 columnCount += 1 End If 

当我在“Private Sub Gen ..”行上设置一个断点,逐行执行代码时,会为每个声明的variables插入一个新的列,所以在这种情况下,它会插入两列,如果MyBooleanValue()…“行(我可以看到它实际发生,因为Excel应用程序可见)。 但是,如果我不设置断点,只是让代码直接通过这不会发生。
没有multithreading发生或其他任何我怀疑会对代码有任何影响。 我明显的工作是不设置断点,我只是想知道是否有人看到过这种情况,为什么? 谢谢

我怀疑这是由于某些属性,debugging器正在评估,以便有所帮助 – 但这是一个邪恶的财产,添加一列的副作用。

我假设你没有任何Watchvariables可以明确地做到这一点?