拥有一张包含宏的按钮的工作表,这些按钮用于选择

时间:2018-05-29 21:53:36

标签: excel vba

是否可以使用Selection来定义另一个工作表中的宏按钮中使用的数据。

我试图制作一个模板工作簿,第一张工作表是一堆宏按钮。我希望能够在另一个工作表中选择数据,单击我的按钮表,然后单击我的按钮以在我在另一个工作表中选择的数据上运行宏。

我遇到的问题是工作表似乎同时有独立的选择。所以我的宏总是运行在按钮表上的选择而不是我所在的表单上。有关如何使这项工作的任何想法?数据的选择需要是动态的,所以我不能说.Cells(1,1).value因为它可能不是我需要的数据。

3 个答案:

答案 0 :(得分:1)

假设有两种类型的工作表:

  • 一组数据表
  • 单个按钮表,通过与按钮绑定的宏来控制处理

我们在标准模块中编码单个全局范围变量。我们在所有数据表中编码选择更改事件宏。然后:

  1. 我们点击数据表
  2. 我们选择数据表中的单元格
  3. 该数据表上的事件宏记录了全局变量
  4. 中的选择
  5. 我们点击进入按钮表
  6. 我们点击按钮
  7. 按钮宏检索全局范围
  8. 按钮宏确定与存储范围(来自父属性)关联的工作表以及我们选择的工作表上的单元格
  9. 按钮宏处理数据
  10. 修改#1:

    要了解有关事件宏(工作表代码)的更多信息,请参阅:

    http://www.mvps.org/dmcritchie/excel/event.htm

    也只是Google: Excel VBA事件宏

    (例如,此论坛中有很多示例)

答案 1 :(得分:0)

https://msdn.microsoft.com/en-us/VBA/Excel-VBA/articles/workbook-sheetselectionchange-event-excel

在这个链接中我需要开始。每次我更改我的选择时,它都会运行一个事件,我可以抓取单元格值并将它们存储在一个数组中,当我更换工作表时它将保持静态。如果我做对了,我会在这里发布。 2018年5月31日

答案 2 :(得分:0)

要实现此目的,我将rng设置为一个公共变量,并将在sheet2中的选择存储在其中。然后,我使用按钮中的click事件来调用要在范围内运行的宏。这是我的模块和工作表中代码的一些屏幕截图。该答案适用于将来发现此问题的任何人。

https://imgur.com/a/DJDaQiM

最大的不足是,vba中的公共变量只需要在任何模块中声明一次。不在您的表代码中。这是使我无法完成任务的最大事情。祝您好运,如有任何疑问,请与我联系。