【发布时间】:2019-11-25 16:12:56
【问题描述】:
我正在通过 c# 从嵌入式 excel 表访问数据,但为了让脚本读取 excel 表,我必须每次都手动按下“启用宏”。我怎样才能编写一个脚本,让它每次都自动启用宏?我正在打开各种 Excel,因此无法更改 Excel 工作表本身的设置。
我看到了一些有关使用 VBA 的信息,但不确定该怎么做?使用这个参考(使用 VBA = Microsoft.Vbe.Interop)会有帮助吗?
下面的代码只是打开了excel,但我还是要点击启用宏。
using Excel = Microsoft.Office.Interop.Excel;
using Word = Microsoft.Office.Interop.Word;
wordApp = new Word.Application();
xlApp = new Excel.Application();
wordDoc = wordApp.Documents.Open(@"Y:DocumentName");
Word.InlineShapes ils = wordDoc.InlineShapes;
ils[1].OLEFormat.Activate();
xlWorkBook = ils[1].OLEFormat.Object;
【问题讨论】:
-
具有较低安全性的宏安全设置,或使您的文件成为受信任的文档。没有启用宏的编程方式,这是一个安全问题。否则,每个宏病毒都会这样做。
-
不确定是不是那个意思,但这听起来很恶意。
-
如果有人能回答这个问题,我很想知道。 (我敢肯定,MS 的人也会如此)。 @MathieuGuindon 有一个很好的观点。
-
有一些脚本可以让您直接访问 VBA 对象,然后关闭这些安全设置,但它会引发一系列安全问题,不推荐使用。
-
另外,
Microsoft.Vbe.Interop是 VBE(Visual Basic 编辑器)扩展性 API,您将使用它来扩展 VBA IDE 本身 - VBE 插件,如 @ 987654321@广泛使用。
标签: c# excel vba visual-studio