我一直在编写一个加载项来处理位于目录中的Excel文件中的数据。我的程序已经在许多场景下成功运行,所以我知道我的代码通常是可靠的。到目前为止,我一直在阅读Excel文件的第一个“工作表”。
我一直致力于通过Worksheets
对象执行foreach循环来“抓取”整个工作簿的功能。这个过程在大多数情况下都可以正常工作,但有时当我更换工作表时,我会弹出消息:Compile Error in Hidden Module: Clipboard
。我不会在任何时候给剪贴板打电话或写任何东西。我已经重新启动机器以清除内存并仍然收到消息。
在断点检查中,我在调用Excel.Range oRng = thisExcel.xlWorksheet.get_Range("A1").SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell);
后收到消息 - 此时它会抛出Complile Error
消息两次(在同一行),然后继续。它不会导致程序失败 - 如果我一直点击'Okay'它将继续到最后并给我输出。
在我的代码中,oRng
是函数中的局部变量,与设置新ActiveSheet
的过程不同,因此在调用get_Range
之前它是null。
当我每个工作簿只阅读1张时,这种情况不会发生,并且它仍会运行到最后 - 只是抛出此消息,直到它被解除后才会继续。我正在使用VSTO 2010。
使用get_Range
时是否有问题?我可以根据要求分享更多代码,如果这有助于增加光线。
更新
尝试了我清除剪贴板的建议。当我尝试Clipboard.Clear()
时,我会得到相同的结果。
答案 0 :(得分:0)
事实证明,Compile Error in Hidden Module: Clipboard
是一些消息,提供给我提供的一些工作簿中的某些特定宏。它在Excel 2010中运行了各种问题。但是在针对Excel 2013进行测试时,没有问题。