Tag: 中断

循环一个文本文件和一个Excel文件

我想查看一个文件中是否包含(不等于)Excel文件中的列。 data = pd.read_excel('C:/Users…/excel.xlsx', sep='\t') f=open("list.txt", "r+") for line in f: line = line.rstrip() for vh in data["Column_of_interest"]: vh = vh.rstrip() match = line in vh print (match) break 结果应该是全部“真实的”,但它只给了我第一个“真”的。

运行代码时,退出Interop控制的Excel

我已经在C#中为Excel编写了一个包装器,以允许在批处理过程中(在JobScheduler下)运行Excel工作簿。 我的问题是这个… 如果代码运行时间过长或需要通过作业调度程序终止,则包装程序需要处理此终止事件。 为此我补充说 SetConsoleCtrlHandler(new HandlerRoutine(ConsoleCtrlCheck), true); 进入代码。 在ConsoleCtrlCheck方法中,我调用一个公共的出口例程(在正常或终止的情况下使用)。 根据MSbuild议,此路由select会执行以下操作。 closures并发布工作簿 closures并发布Excel 垃圾收集 然后用被调用的Excel方法(入口点)的返回码退出。 这很好。 但是,如果VBA代码仍在运行,Interop对象将不会响应工作簿closures或应用程序退出调用。 这可能是因为一切正在缓慢或由于模态对话已经发出。 为了应付这个问题,我在这个常见的例行程序中join了以下内容: 创build新的线程来运行KillExcel方法 KillExcel方法睡眠一段时间(所以正常的退出代码有机会工作),然后杀死进程 如果正常的代码工作,它会在线程中调用Abort private static void Cleanup() { // Give this X seconds then terminate mKillThread = new Thread(KillExcel); mKillThread.IsBackground = false; mKillThread.Start(); … // close the workbooks and excel application // Marshal.FinalReleaseComObject etc GC.Collect(); GC.WaitForPendingFinalizers(); // […]

中断/中止一个VBA循环

在Excel的VBA中,我有几千个单元格的循环,这需要几分钟的时间。 是否有可能中止一个长期的循环(如果是这样,如何)/我可以build立一个button或类似的东西手动中断此循环? build立一个button,并用macros覆盖它不是一个问题,只有代码本身。