以前从来没做过,现在有个需求,要求设计一个exe之类的在桌面上,然后双击后出来一个界面,让你选择要打开的excel文件,而这个excel文件里用宏编写的vba代码实现一定的功能。顺便把实现的功能说一下:统计材料表中的信息,根据各个部件进行排序,事实上原来不设计界面,能够实现:excel里边有一个按钮,一点就能运行vba程序。只不过现在要用一个界面来选择不同的excel文件,来完成点击按钮的那个功能。
谢谢各位大虾,帮帮忙!!!!
我想了两天用VB能不能做,之前没做过,最好用VB就能解决。如果有思路及代码就更好了
只允许我发30分的帖子,不然我想给100分。

解决方案 »

  1.   

    http://www.autohotkey.com
    用.ahk语言
      

  2.   

    Run 方法
    请参阅 应用于 示例 特性 
    应用于 Range 对象的 Run 方法。在该处运行 Microsoft Excel 宏。区域必须位于宏表上。expression.Run(Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)expression   必需。该表达式返回一个 Range 对象。Arg1-Arg30   Variant 类型,可选。传递给函数的参数。应用于 Application 对象的 Run 方法。运行一个宏或者调用一个函数。该方法可用于运行用 Visual Basic 或 Microsoft Excel 宏语言编写的宏,或者运行 DLL 或 XLL 中的函数。expression.Run(Macro, Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8, Arg9, Arg10, Arg11, Arg12, Arg13, Arg14, Arg15, Arg16, Arg17, Arg18, Arg19, Arg20, Arg21, Arg22, Arg23, Arg24, Arg25, Arg26, Arg27, Arg28, Arg29, Arg30)expression   必需。该表达式返回一个 Application 对象。Macro   Variant 类型,可选。所要运行的宏。既可以是一个带有宏名的字符串,也可以是指示此函数所在位置的 Range 对象,或者是一个已注册的 DLL (XLL) 函数的注册号。如果使用字符串,将在当前工作表环境中对此字符串求值。Arg1-Arg30   Variant 类型,可选。传递给函数的参数。说明
    此方法不可使用命名参数,参数必须通过位置进行传递。Run 方法返回被调用宏的任何返回值。如果将对象作为参数传递给宏,该对象将转换为相应的值(通过对对象应用 Value 属性)。这意味着不能用 Run 方法将对象传递给宏。示例
    本示例示范如何调用宏表“Mycustom.xlm”(必须先打开此宏表〕中定义的宏函数 My_Func_Sum。此函数带两个数值型参数(此例中为 1 和 5)。mySum = Application.Run("MYCUSTOM.XLM!My_Func_Sum", 1, 5)
    MsgBox "Macro result: " & mySum