excel - 从命令按钮传递工作表和按钮对象
问题描述
有没有办法将 ActiveSheet 对象和对象作为参数传递给工作表上的命令按钮调用的子对象?
我知道您可以从以下命令按钮将参数传递给宏:
但是,当单击 Button_1 时,您如何将以下参数发送给子对象?(不使用 commandButton_click 事件)
参数 1:ws 作为工作表(包含被按下按钮的工作表) 参数 2:按钮作为对象(被按下的按钮)
我在按钮的“分配宏”输入框中尝试了以下操作。
'SubToBeCalledByButton(ActiveSheet,这个)'
尝试 /u/Nathan_Sav 建议拨打电话:'SubToBeCalledByButton(activesheet, activesheet.shapes("Button Name"))' 但出现以下错误:
这是我在分配宏中使用的输入:
这是按钮调用的子程序:
Public Sub DetailButton(ws As Excel.Worksheet, but As Object)
Debug.Print "ws:" & vbTab & ws.Name
Debug.Print "but:" & vbTab & but.Name
Debug.Print "cal:" & vbTab & Application.Caller
End Sub
解决方案
来自 Nathan_Sav 对我的问题的评论:
无需将 ActiveSheet 和 CommandButton 作为参数发送。
ActiveSheet
可以通过ActiveSheet
在被调用的 sub 中使用来获得,因为调用 sub 的按钮必须在 ActiveSheet 上才能被按下。
Button
(调用 sub 的按钮)可以使用Application.Caller
推荐阅读
- javascript - 返回函数在我的代码中不起作用导致无限循环
- javascript - 从雅虎财经的交互式图表中抓取数据的有效方法
- python - pyqt5如何修复VBox中的图像大小?
- php - 按钮调用控制器功能/方法
- c++ - GL_TEXTURE_2D_MULTISAMPLE 未在此范围内声明 OpenGL 4.6
- windows - 如何在 Windows 上使用 Fiddler 监控 docker push 生成的 HTTP 流量?
- excel - excel日期格式不起作用mm / dd / yyyy到yyyy-mm-dd
- winapi - 为什么 MediaFoundation 的 MediaEngine 可能会在第二次调用播放时播放视频,而不是第一次?
- node.js - 在运行 HTTPS 的 IIS 上运行 Nodejs 和 React 时遇到问题
- sql - SSMS 和 VBA 之间的存储过程结果不同