c# - 使用 C# 检查 Excel 工作簿是否具有宏

标签 c# excel

我需要使用 C# 客户端浏览数百个 Excel 文件以找到那些具有宏的文件。

我已经尝试使用此处接受的答案中的代码:

Using Interop.Excel to check if Excel file contains VBA Macros

但是,此代码首先打开文件。即使在添加 _appExcel.DisplayAlerts = false

后,许多文件仍会打开弹出 Windows 和 VBA 错误消息

它也很慢。有没有更好的方法来解决这个问题,最好不要先打开 Excel 文件?

我在 MSDN 上查找了有关 Excel 互操作的文档:HasVBProject但没有我可以使用的示例。

最佳答案

试试这个

f = Dir("*.xls*")
While f <> ""
On Error Resume Next
    Set wb = Workbooks.Open(f)
    If wb.HasVBProject Then
       Debug.Print wb.Name & " has macro"
    Else
        Debug.Print wb.Name & "does not have macro"
    End If
    wb.Close
    f = Dir
Wend

关于c# - 使用 C# 检查 Excel 工作簿是否具有宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41637912/

相关文章:

c# - 是否可以重新加载 XDocument 并保留对它的所有现有引用?

c# - C#同步接口(interface)和实现注释的方法

excel - 如何使用Excel VBA计算一个UTF8字符的字节长度?

excel - 从 EXCEL VBA 单击 Web 上的按钮

vba - VBA 中的应用程序匹配

excel - ClosedXML 生成格式错误的 xlsx

C# Excel (2003) 互操作 - 边距与输入值不对应?

c# - 如何在 C# 中中断 Gurobi 模型优化?

c# - 在 EpiServer 8 中,如何扩展 Scheduled Publish 事件?

c# - ParallelOptions、TaskCreationOptions 和 Task.Factory.StartNew 的正确使用?