【问题标题】:Run Macro from Desktop Shortcut从桌面快捷方式运行宏
【发布时间】:2016-05-25 17:19:23
【问题描述】:

我编写了一个宏,它根据特定类型的 Excel 表格进行一些计算。我试图将它分发给我的同事,但是在工作簿中添加宏然后运行宏对他们来说是陌生的。我想要一个“快捷方式”或一些 VBS 程序来打开特定工作簿(由用户指定)、运行宏并显示结果。

感谢您的帮助!

--编辑-- 我用 VBA 写了一个宏。我将文件导出到我的桌面。它简称为“Macro1”。我们有我们公司使用的标准格式的 Excel 表格。它实际上是具有不同数字的同一张纸。我设计的宏适用于这些类型的工作表并进行计算。我的同事不擅长使用宏,所以我想要某种“代码”,它会提示我的一位同事输入 excel 文件,然后在文件上执行宏。希望这可以澄清任何问题。

【问题讨论】:

  • @JohnColeman 我花了很大一部分时间试图找到答案,但它不存在。
  • 真相就在那里! :-) 我有完全相同的要求,除了它是 CSV 文件。我的加载项代码检测我是否打开了一个 csv 文件,它会检查文件是否具有正确的内容,然后询问我是否要进行加载项计算。我的用户可以通过互联网自行安装和自动更新:-)
  • 如果您需要帮助使用您的代码实现代码,请告诉我。

标签: vba excel vbscript macros


【解决方案1】:

您需要将其设为 excel 插件。

然后在加载项中使其在此工作簿中使用Sub App_SheetActivate(ByVal Sh As Object) 打开的工作簿上运行。

在宏中,您可以通过以下方式仅在某些工作簿名称或工作簿类型上激活它:

If range("A1").value = "something" ' something that makes the workbook type special.
' Maybe you need B1 value and so on too.

您是否需要一种自行安装插件的方法,请告诉我,我也有相应的代码。

自行安装:

' if add-in is not installed and the workbook is a add-in (workbookcount =0)
' Also take note that this code will only run if the add-in is not installed
If Dir(Application.UserLibraryPath & "YourWorkbookName.xlam") = "" And Workbooks.Count = 0 Then
     'optional ask user if he wants to install or not. Code not included.

     ' copy file from current position to add-ins folder.
     Result = apiCopyFile(ThisWorkbook.FullName, Application.UserLibraryPath & "YourWorkbookName.xlam", False)
     ' activate the add-in
     AddIns("YourAdd-inName").Installed = True

     msgbox("add-in installed")

     ' Close Excel since add-ins does not work without restart of Excel
     On Error Resume Next
     Application.Interactive = False
     AppActivate "Microsoft Excel"
     Application.Quit
     Exit Sub 
End If

请注意,文件必须另存为插件。 (xlam) 这意味着没有工作表,工作簿只是 VBA 代码。
通常,这并不意味着代码需要以特殊方式编写。
通常 Range("XX").value 有效,但某些命令可能需要指向正确的工作簿。 (您有两个使用加载项打开的工作簿,一个是带有代码的加载项,另一个是带有工作表和编号的工作簿)

希望对你有帮助

【讨论】:

  • 如果可以的话,是的,我确实需要自行安装插件。
猜你喜欢
  • 2017-10-12
  • 2022-10-19
  • 1970-01-01
  • 1970-01-01
  • 2011-02-10
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多