早上好,
我通过.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应用程序可见)。但是,如果我没有设置断点并让代码直接运行,则不会发生这种情况 没有多线程发生或我认为会对代码产生任何影响的任何其他内容。 我明显的工作是不设置断点,我只是想知道是否有人看到过这种情况之前和出于什么原因? 感谢
答案 0 :(得分:1)
我怀疑这是由于调试器正在评估某些属性以便提供帮助 - 但这是一个带有添加列的副作用的恶意属性。
我假设您没有任何可以明确执行此操作的Watch变量吗?