如何使用C#的Excel工作表中删除VB code? [英] How to delete VB code from an Excel sheet using C#?

查看:190
本文介绍了如何使用C#的Excel工作表中删除VB code?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有谁知道如何删除全部 VB code。使用C#形成一个Excel工作簿?
这code不起作用。它消除了第一个(最后一个)的VBComponent,但上升的第二个ArgumentException的。

Does anyone know how to delete all VB code form an Excel workbook using C#? This code doesn’t work. It removes first (last one) VBComponent, but rises ArgumentException on second one.

        VBProject project = workbook.VBProject;
        int componentsCount = project.VBComponents.Count;

        for (int i = componentsCount; i >= 1; i--)
        {
            VBComponent component = project.VBComponents.Item(i);
            project.VBComponents.Remove(component);
        } 

有什么建议? :)

Any suggestions? :)

推荐答案

我与山姆的帮助下解决了这个问题。我猜想,每个Excel工作簿中有一些不可删除VBComponents,因此而不是删除他们,我们可以明确自己的内容。它的工作原理吧。谢谢山姆。

I solved it with Sam's help. I suspect that each Excel workbook has some non-deletable VBComponents, hence instead of deleting them we can clear their content. It works now. Thank you Sam.

            VBProject project = workbook.VBProject;

        for (int i = project.VBComponents.Count; i >= 1; i--)
        {
            VBComponent component = project.VBComponents.Item(i);
            try
            {
                project.VBComponents.Remove(component);
            }
            catch(ArgumentException)
            {
                continue;
            }
        }

        for (int i = project.VBComponents.Count; i >= 1; i--)
        {
            VBComponent component = project.VBComponents.Item(i);
                component.CodeModule.DeleteLines(1, component.CodeModule.CountOfLines);
        }

不要忘了事后保存工作簿:)

Do not forget to save your workbook afterwards :)

这篇关于如何使用C#的Excel工作表中删除VB code?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆