在另一个工作簿中添加worksheet_Change

时间:2016-07-05 19:45:50

标签: vba excel-vba excel-2010 excel

我应该如何在另一个工作簿中添加worksheet_change子例程?我有一个每日工作运行,从服务器获取文件,打开它,进行一些格式更改,然后将其传递给最终用户进行处理。我需要对文件进行的格式更改之一是通过数据验证创建依赖的下拉列表。

据说我有两个字段,“Main_Category”和“Sub_Category”,我希望能够让最终用户根据标准化的下拉列表进行选择。一旦用户选择“Main_Category”,将根据“Main_Category”填充“Sub_Category”的下拉列表。我的困境是,如果用户在选择“Sub_Category”后改变了对“Main_Category”的想法,excel将不会清除此选择..

我的想法是在文件中添加一个worksheet_change。但是我应该怎么做呢?

1 个答案:

答案 0 :(得分:0)

不确定我是否得到了你问题的确切内容,但希望这会有所帮助。

要识别工作表上的更改,您可以使用两种主要方法:

  • SelectionChange - 当选择更改时发生 工作表
  • Change - 当工作表上的单元格被更改时发生 用户或外部链接

您可以在上面的链接中找到如何使用相同的内容。基本上,您需要将相应的方法添加到要跟踪更改的工作表(您可以通过在VBE上选择工作表代码并在其中键入代码来执行此操作),然后使用Target参数获取有关更改的更多信息发生并执行了所需的代码(例如,清除或更新某个范围的值)。

考虑到您将代码添加到您需要的每个工作簿/工作表中,这样可以正常工作。

以编程方式将代码添加到工作簿:

如果您希望以编程方式将此代码添加到新工作簿,则需要信任对VBA项目对象模型的访问权限,如下所述:

仍然, 请注意,从安全角度来看,不建议这样做 ,因为这将允许其他程序更改,复制和运行excel中的任何代码。如果您真的需要这个,可以选择在运行宏之前手动更改此选项,然后再将其更改回来。