如何运行子程序

问题描述:

我是vba的新手。那么我正在写一个子程序,像 Sub addcell(ByVal目标作为范围)并写入一些语句。我的查询是,如何自动运行此过程,而无需执行任何操作,也无需使用命令按钮。有没有办法。请帮我解决一下这个。如何运行子程序

+1

你想要什么时候运行?看看[工作表事件](https://msdn.microsoft.com/en-us/library/microsoft.office.tools.excel.worksheet_events.aspx) – Tom

在Visual Basic编辑器的左侧,您有Project Explorer窗格;这会显示工作簿中的所有对象。您会注意到,在任何工作簿中默认都有至少两个对象 - 工作簿中每个工作表的ThisWorkbook对象和Sheet对象。您想要自动运行的代码应放置在ThisWorkbook或适当的Sheet对象中。

enter image description here

如果您在任何工作簿或工作对象的双击,你将打开,显示当前存储在该对象的代码的代码窗口。页面顶部有两个下拉菜单,通常默认为“(常规)”和“(声明)”。打开“(常规)”下拉列表以获取对象列表 - 通常您会看到“工作表”或“工作簿”,具体取决于您打开的对象。

enter image description here

选择对象,那么,“(声明)”下拉菜单会给你的事件列表。他们有很多描述性的名字,比如“Change”,“SelectionChange”,“Calculate”,“WorkbookOpen”等等。选择你想要的事件,并且一个新的子会自动创建。把你的代码放在这个子内部,并且每当触发达到时它都会执行。

非常小心。例如,如果您将代码放入工作表的Change事件中,最终更改工作表,您可以进入工作表的非生产性循环,不断改变自身并无休止地重新触发。

+0

只需添加到此 - 您可以避免仅通过递归针对特定的单元格或范围,或通过禁用事件并通过在开始处使用Application.EnableEvents = False并在末尾使用Application.EnableEvents = True来重新启用 – Tom

+1

谢谢各位。很高兴看到它现在工作。请继续帮助。谢谢你和kadrinchey(谢谢你用不丹语言) – user7561012