2017-04-26 240 views
0

我有一个场景,我们需要在服务器上打开一些电子表格,通过添加按钮更新每个工作簿上的工作表数量。在远程桌面上使用VBA运行Excel加载项功能

因此,用户打开远程桌面,打开电子表格,转到工作表x,进入加载项菜单并单击按钮。该按钮更新表单上的数据,需要几秒钟。然后他们打开表格并重复。最终所有工作表都会更新并且用户保存并关闭工作表。

我试图自动化这个。我的想法是有了“主人Excel文档”的一个按钮来执行VBA代码将:

  • 打开一个特定的文件夹
  • 打开每个工作簿文件夹中
  • 周期隔着薄片,并找到那些需要更新(因为不是每个工作表都需要更新)
  • 完成后,保存并关闭工作表,然后重复所有工作簿和所有文件夹。

我现在的主要问题是我需要弄清楚如何从我的VBA代码执行加载项功能。我已经研究并发现我需要使用如下代码运行它:APPLICATION.RUN“ADDIN_NAME.XLA!SUBNAME”

我想我有ADDIN_NAME(通过单击文件,选项,加载项找到此文件)。但我无法弄清楚如何获取子名。

使用宏记录器不起作用 - 没有代码记录用于单击插件按钮。当我将鼠标悬停在插件按钮上时,它会给我“分析人员:刷新报告,使用当前标准”。任何关于如何解决子名是什么的建议? enter image description here enter image description here

+0

难道你不能共享存储文件的服务器驱动器,只是在没有RDP的情况下在本地执行? – Tom

+0

是功能区中还是表单上的按钮? –

+0

@Tom,服务器拥有多个难以/不可能在本地获得的权限和服务。 –

回答

0

你可以通过撬动其重命名为拉链打开XLS(M?)文件,在ZIP打开它,导航到customUI/customUI.xml并打开记事本。阅读应该给你的每个按钮添加的宏的名称是调用。

例如。

....size="large" onAction="showuserform" imageMso="CreateRepo.... 

其中showuserform是被调用的宏的名称。

+0

啊,是的,这是一个VSTO。我相信你仍然编写XML来操作功能区,但编译后可能会很难阅读(如果这是正确的话 - 我自己不使用VSTO) – CLR

+0

感谢CLR - 我没有设法获得任何我能看到的东西作为使用这种方法的可用。我查找了各种关键字,看看其中的其他文件是否有可用的东西(customUI.xml之外),但不幸的是没有发现任何东西。 –

相关问题