Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 在另一个工作表中的另一个按钮上运行(单击)的命令按钮_Excel_Vba - Fatal编程技术网

Excel 在另一个工作表中的另一个按钮上运行(单击)的命令按钮

Excel 在另一个工作表中的另一个按钮上运行(单击)的命令按钮,excel,vba,Excel,Vba,工作表4(名称1)有一个按钮,此按钮将使用户转到另一个带有图表Sheet3(图表)的工作表 目标:让第4页(名称1)中的按钮同时单击另一张表1(基本)中的另一个按钮,这将导致图形更新 我明白,只使用按钮来执行代码听起来可能更容易,但在这种情况下就不行了。其他按钮可能看起来像这样: Private Sub CommandButton42_Click() 'do stuff... End Sub 将其更改为: Private Sub CommandButton42_Click()

工作表4(名称1)有一个按钮,此按钮将使用户转到另一个带有图表Sheet3(图表)的工作表

目标:让第4页(名称1)中的按钮同时单击另一张表1(基本)中的另一个按钮,这将导致图形更新

我明白,只使用按钮来执行代码听起来可能更容易,但在这种情况下就不行了。

其他按钮可能看起来像这样:

Private Sub CommandButton42_Click()
    'do stuff...
End Sub
将其更改为:

Private Sub CommandButton42_Click()
    DoStuff
End Sub
DoStuff
过程放入标准模块中(注意
Public
access修饰符):

如果不希望
DoStuff
以宏的形式公开,请在顶部靠近放置
选项显式
:)的位置添加
选项专用模块

然后,您的按钮可以执行以下操作:

Private Sub CommandButton1_Click()
    DoStuff
End Sub

不要从用户代码中调用
单击
处理程序-事件处理程序应该是
私有的
,并由事件提供程序对象调用。

…但在这种情况下不是。。为什么不呢?这似乎是一些代码重构的一个明显候选。将“更新”代码抽象为一个独立的过程,可以从所需的任何按钮/事件/等调用。@DavidZemens我认为OP的意思是将代码复制到另一个按钮上-我同意这是一个坏主意。旁注:在项目资源管理器(Ctrl+R)中找到
图形
表,然后更改其
(名称)
属性,例如
图形表
。现在您可以执行
图形工作表。激活
-如果工作表在编译时存在,则无需从此工作簿
获取任何工作表。
Public Sub DoStuff()
    'do stuff...
End Sub
Private Sub CommandButton1_Click()
    DoStuff
End Sub