此宏按预期方式工作,通过“批输入”页面上的按钮:
Sub BatchTriggerOFF()
Sheets("Batch Input").Unprotect
Sheets("Batch Input").Range("G3:J3").Value = "Off"
Sheets("SQL LOGIC").Calculate
Sheets("Batch Input").Range("A12").Select
Sheets("Batch Input").Shapes.Range(Array("Group 12")).ZOrder msoSendToBack
Sheets("Batch Input").Protect
End Sub
但是,当从同一工作簿中的不同工作表调用BatchTriggerOFF时,宏既不会更改Range(“ G3:J3”)。Value也不会更改Shapes.Range(Array(“ Group 12”))。ZOrder msoSendToBack。没有错误消息。
If Sheets("SQL LOGIC").Range("B1") = "On" Then Call BatchTriggerOFF
我已经尝试过取消保护批处理输入表,弄乱了Sheets(“批处理输入”).Activate,Sheets(“批处理输入”).Select,甚至尝试将VBA的BatchTriggerOFF行直接粘贴到第二个宏中,无济于事。
是什么原因导致从第二个宏/工作表调用BatchTriggerOFF似乎无法运行?
如果需要从任何(工作表)模块中调用您的子模块,请将其移动到模块中!工作表模块中的功能/子是私有的,即使您未以这种方式定义它们也是如此...