如何在VB中打开一个Excel文件并调用Excel文件自身的VBA宏?

时间:2022-09-29 13:41:58

最近在做一个项目,项目的主体是基于Excel的VBA开发。项目的各个要求比较零碎,每一项要求之间互相独立,于是每一项要求就由一个Excel表格来单独实现,项目结果是产生了若干个零碎的带有VBA宏的Excel文件。

为了使软件整体化、结构化,借助于VB,绘制了一个窗体,窗体上有若干个Button,每一个Button对应着一个带有VBA宏的Excel文件

借助于以下语句将Excel文件打开

Private Sub Command1_Click()
    Dim ExcelApp As Object
    Dim MyExcel As Object
    
    Set ExcelApp = CreateObject("Excel.Application")
    ExcelApp.Visible = True
    Set MyExcel = ExcelApp.workbooks.open(App.Path + "\模板.xls")
    MyExcel.Activate

End Sub

下一个问题便是如何调用已经编制好了的VBA宏呢?首先想到的思路是把VBA宏复制过来,放到VB程序中,然后在Sub Command1_Click()中调用它,但是实施起来发现很困难,因为Application、workbooks、ThisWorkbook这些Excel VBA中习以为常的词汇VB却看不明白,需要一点一点的告诉Vb这是什么意思,非常麻烦,于是就想,能否让VB直接去调用Excel VBA中的宏呢?

ExcelApp.run "ThisWorkBook.FillProcedure"        'run的调用者应是Application对象,而且,宏的名字前面要加ThisWorkBook.

感谢http://blog.csdn.net/zhu2695/article/details/16974765中的提示。