关于 vba:Excel 快速访问工具栏 – 从活动而不是以前的工作簿运行宏

Excel quick access toolbar - run macro from active instead of previous workbook

我在 Excel 的快速访问工具栏中有一个自定义按钮(不是加载项,只是一个"快捷方式"按钮),用于在活动工作簿中运行宏。每天都会使用新文件名修改和保存工作簿。当链接首次在活动工作簿中创建(称为版本 1)时,宏运行良好。但是第二天(文件名现在版本 2)单击宏按钮打开工作簿版本 1 并运行保存在版本 1 中的宏。

有没有一种简单的方法可以断开链接并在最近的活动工作簿中运行宏?

代码是基本的 - 它只是打开一个用户表单并保存在 "ThisWorkbook"

1
2
3
4
Sub OPEN_DATA_USERFORM()

ufDATA.Show
End Sub


我会尽力指导你,希望对你有所帮助。

我们需要做的是从我们的"PERSONAL.XLSB" 文件中调用OPEN_DATA_USERFORM()。在 VB 编辑器屏幕中,在项目资源管理器中,您将找到一个名为"PERSONAL.XLSB"的文件,您需要在其中添加一个"模块"并添加以下代码:

1
2
3
Sub KickOff()
    Call Application.Run(Excel.ActiveWorkbook.Name &"!OPEN_DATA_USERFORM")
End Sub

这样我们就可以从我们的 PERSONAL.XLSB 调用 userform.show 函数,当您打开 excel 时,该函数始终在后台运行。

PS:我假设您的 OPEN_DATA_USERFORM() 已编码在您的日常工作簿中。

更新:PERSONAL.XLSB
您的文件应该在您的项目资源管理器中可见,如下所示:

enter