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

时间:2010-02-04 10:09:16

标签: c# .net vb.net excel

早上好,
我通过.Net创建的Excel工作表发生了一件相当奇怪的事情。 我加载了一个现有的工作簿

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

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

_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 ..”行上设置断点,并逐行逐步执行代码时,它会为声明的每个变量插入一个新列,因此在这种情况下,它会在它之前插入两列点击“If MyBooleanValue()...”行(我可以看到它实际上是由于Excel应用程序可见)。但是,如果我没有设置断点并让代码直接运行,则不会发生这种情况 没有多线程发生或我认为会对代码产生任何影响的任何其他内容。 我明显的工作是不设置断点,我只是想知道是否有人看到过这种情况之前和出于什么原因? 感谢

1 个答案:

答案 0 :(得分:1)

我怀疑这是由于调试器正在评估某些属性以便提供帮助 - 但这是一个带有添加列的副作用的恶意属性。

我假设您没有任何可以明确执行此操作的Watch变量吗?