【发布时间】:2010-02-04 10:09:16
【问题描述】:
早安,
我通过 .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 应用程序可见,我可以看到它实际发生)。但是,如果我不设置断点而只是让代码直接运行,则不会发生这种情况。
没有发生多线程或其他任何我怀疑会对代码产生任何影响的事情。
我明显的解决方法是不设置断点,我只是想知道是否有人以前见过这种情况以及出于什么原因?
谢谢
【问题讨论】:
-
欢迎来到Office开发!
-
是的,到目前为止笑了一分钟:)
-
我们多年来一直在与 Excel 互操作作斗争。不同的版本不同的服务包 - 这很难。然后我们放弃了,干脆买了第三方组件。