我正在尝试使本地药房的季度患者报告自动化,因此我已将其转移到excel。自动化的一部分是在报告封面上的“添加患者”按钮,该按钮转至用于获得相关信息的表单。表格上的“确定”按钮获取信息并将其格式化为根据患者姓名命名的新表格。该按钮还将两个新创建的按钮添加到患者表中,一个删除和编辑按钮。我可以创建按钮并将其放置,但是找不到任何将点击事件分配给按钮的方法,因为它们被视为每个页面上的新对象。
我已经将按钮的主要代码移到了工作簿本身,所以我真正需要在按钮的click事件中添加的只是对该方法的调用,但是我找不到通过vba访问新按钮的click事件的方法,而且由于我需要在VBA本身中调用方法,因此我不确定我是否也可以使用宏(请注意,我对excel宏不是很熟悉,因此如果解决方案在它们里面,我也可以使用它) )。
这是在新工作表上实例化和放置“删除”按钮并设置其大小的代码:
Dim btn As OLEObject
Set btn = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False, DisplayAsIcon:=False)
With btn
.Name = "deletePatientButton"
.Object.Caption = "Delete Patient"
.Top = 5.25
.Left = 290.25
.Width = 75
.Height = 24.75
.PrintObject = False
结束于
这是放置在工作簿代码本身中的删除按钮的主要方法(请注意,它实际上只调用了另一个验证表单,因此这可能是多余的,但是我想将其放在工作簿部分中进行测试,因为我认为它具有最大范围):
Public Sub mainDeleteButton(sheet As Worksheet)
Dim confirmer As New deleteConfirmationForm
sheet.Activate
confirmer.Show
End Sub
最后,这是我希望能够放置或替换为其他解决方案的click事件的示例:
Private Sub deletePatientButton_Click()
Call ThisWorkbook.mainDeleteButton(Me)
End Sub
任何帮助都超过了感激!
可以通过编程方式将事件代码添加到工作表模块中(请参阅此文章)。但是,将按钮保留在已包含事件代码的模板工作表上可能会更容易。只需将您的模板复制到新的工作表上,重命名它,然后添加您的患者数据即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句