我写了一个宏,它根据特定类型的Excel工作表进行一些计算。我试图将此分发给我的同事但是将宏添加到工作簿然后运行宏对他们来说是陌生的。我想要一个“快捷方式”或一些VBS程序来打开一个特定的工作簿(由用户指定),运行宏,并显示结果。
感谢您的帮助!
- Edit-- 我在VBA中写了一个宏。我将文件导出到我的桌面。它简称为“Macro1”。我们有一个标准形式的excel表我们公司使用。它字面上是相同的表格,具有不同的数字。我设计的宏适用于这些类型的工作表并进行计算。我的同事对宏并不擅长,所以我想要一些“代码”来提示我的同事获取excel文件,然后在文件上执行宏。希望这能澄清任何问题。
答案 0 :(得分:0)
您需要将其设为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”)。值有效,但某些命令可能需要指向正确的工作簿。 (你有两个工作簿打开加载项,加载项与代码和工作簿与工作表和数字)
希望这有帮助