我有两个电子表格(“旧”和“新”)和一个VB脚本宏。宏运行在一个(“新”),比较另一个(“旧”)的内容,然后将结果输出回“新”电子表格。
我想构建一个可执行文件,我输入两个文件名,然后单击一个运行按钮来简化此过程。当前过程需要打开两个文件,然后将脚本剪切并粘贴到VB编辑器“New”并在那里运行。我正在寻找有关在Windows XP中使用哪种编程语言或工具来创建此应用程序以针对在Excel 2007中创建的电子表格运行的建议。
我可以使用C#编写一个可以执行此操作的简单应用程序吗?
如果您可以向我指出有关编写C#应用程序以与Excel交互的资源,那将非常感激。
这是我第一次尝试编写与Excel交互的应用程序。也许这是不可能的。如果是这种情况,请告诉我。
答案 0 :(得分:1)
为什么不创建一个名为“Compare.Xls”的excel文件,它将使用以下代码来允许用户选择文件并对它们运行比较
Dim fd As FileDialog
Dim sOldFile As String
Dim sNewFile As String
Set fd = Application.FileDialog(msoFileDialogOpen)
fd.AllowMultiSelect = False
MsgBox "Please Select the Old File"
fd.Show
Workbooks.Open fd.SelectedItems(1)
sOldFile = ActiveWorkbook.Name
MsgBox "Please Select the New File"
fd.Show
Workbooks.Open fd.SelectedItems(1)
sNewFile = ActiveWorkbook.Name
它可以使用一些进一步的错误检查,比如确保用户没有选择取消或在文件对话框上按下转义,但是它应该允许您在1个文件上创建一个按钮并在两个文件上运行比较用户选择的文件。
编辑:我也考虑过这个问题,您可以在Workbook_Open下的ThisWorkbook中添加对您的宏的调用,并在有人打开Compare.Xls时自动运行。答案 1 :(得分:0)
有可能。
以下是一些关于此事的好教程:
答案 2 :(得分:0)
我在Open office org中定义了宏,我使用批处理文件从命令行执行宏。 批处理文件是使用C#执行的。 使用ProcessStartInfo和Process Class。 你可能知道 您可以在隐藏模式下运行批处理文件,也可以从输出流中返回结果(如果有的话)。
答案 3 :(得分:0)
也许您可以考虑将“New”编写为excel模板,在实例化中运行一个打开“Old”的宏,比较并保存到新文档。
您还可以考虑使用Old作为模板或编写新模板“compare.xlt”,如另一个答案所示。