【问题标题】:Running an Excel Add-in function using VBA on remote desktop在远程桌面上使用 VBA 运行 Excel 加载项函数
【发布时间】:2017-04-26 08:07:29
【问题描述】:

我有一个场景,我们需要在服务器上打开多个电子表格,通过添加按钮更新每个工作簿上的多个工作表。

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

我正在尝试自动执行此操作。我的想法是有一个带有按钮的“主 excel 文档”来执行 VBA 代码,它将:

  • 打开特定文件夹
  • 打开文件夹中的每个工作簿
  • 循环浏览工作表并找到需要更新的工作表(因为并非每张工作表都需要更新)
  • 完成后,保存并关闭工作表,然后对所有工作簿和所有文件夹重复此操作。

我现在的主要问题是我需要弄清楚如何从我的 VBA 代码中执行加载项函数。我研究并发现我需要使用这样的代码来运行它:APPLICATION.RUN "ADDIN_NAME.XLA!SUBNAME"

我想我有 ADDIN_NAME(通过单击文件、选项、加载项找到此名称)。但我不知道如何获得子名。

使用宏记录器不起作用 - 没有记录单击加载项按钮的代码。当我将鼠标悬停在加载项按钮上时,它会给我“分析员:刷新报告,使用当前标准”。关于如何计算子名的任何建议?

【问题讨论】:

  • 你能不能共享存储文件的服务器驱动器,只在本地进行而不使用 RDP?
  • 按钮是在功能区还是在工作表上?
  • @Tom,服务器拥有多种权限和服务,很难/不可能在本地获取。
  • @Nathan_Sav 按钮在功能区上。
  • 插件是什么?它是xla 文件吗?它是内部开发的还是外部开发的?

标签: vba excel excel-addins


【解决方案1】:

您可以通过将 xls(m?) 文件重命名为 zip 来撬开它,在 ZIP 中打开它,导航到 customUI/customUI.xml 并在记事本中打开它。阅读应该会给你添加的每个按钮正在调用的宏的名称。

例如。

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

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

【讨论】:

  • 啊,是的,它是 VSTO。我相信您仍然编写 XML 来操作功能区,但一旦编译后可能很难阅读它(如果这是正确的词 - 我自己不使用 VSTO)
  • 感谢 CLR - 我没有设法得到任何我认为可以使用这种方法的东西。我查找了各种关键字,以查看其中的其他文件是否有可用的东西(在 customUI.xml 之外),但不幸的是什么也没找到。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多