为什么不运行Worksheet_Change()事件中的代码?

时间:2012-05-18 18:18:54

标签: excel-vba vba excel

更新: 如果我将范围定义为A2中的input_range:P29。然后如果在第30行输入,那么它可以工作。但是,Input_range不会自动扩展,我想将整行向下移动不仅是范围中的最后一行。我怎么能实现这两件事呢?

Previous question

在Siddharth Rout的帮助下,我可以在新的Excel文件上进行此工作。但是,无论我在这个文件上尝试过什么

Sample Excel File - 它不起作用。我想有某种结构可以防止自动添加行。如果是这样,我怎样才能使代码生效?

1 个答案:

答案 0 :(得分:2)

当您检测到Worksheet_Change()事件时,您需要将代码放在工作表对象中,而不是模块中。

以下是如何操作:

  1. Alt-F11以打开VBA编辑器
  2. 从Module1
  3. 复制Worksheet_Change()子
  4. 双击Sheet6(itemmaster)
  5. 将代码粘贴到那里
  6. 确保在编辑器顶部的两个下拉列表中看到Worksheet和Change。

    注意:您应始终启用Option Explicit以要求变量声明。阅读此答案,了解如何操作:https://stackoverflow.com/a/10653204/138938

    Screen-shot of code in worksheet instead of module