gpt4 book ai didi

excel - 在所有工作表中应用按钮+宏

转载 作者:行者123 更新时间:2023-12-02 22:00:39 25 4
gpt4 key购买 nike

请原谅我的无知(新手,对 VBA 知之甚少)...

我开发了一些附加到按钮的宏,并在工作簿中的一个工作表中工作。宏在日历上执行各种作业。医院侧楼的 10 间卧室每间都有一本日历。

我现在想为每个卧室制作具有相同按钮和宏的相同工作表,即 10 个工作表。

但是尽我所能,我无法让宏在其他工作表中工作。

宏位于第一个工作表 (Bed1) 的 VBA 代码编辑器中。我已将代码复制到 VBA 编辑器中的“此工作簿”页面中 - 但这没有任何效果,除了完全阻止它们工作之外。

这是一个典型的宏:

'============================================
Private Sub Prevw1_Click()
'============================================
' DAILY PATIENT TIMETABLE
' PRINT PREVIEW
'============================================
ActiveSheet.Select
ActiveSheet.AutoFilterMode = False
Range("_Daily").Select
ActiveSheet.PageSetup.PrintArea = "_Daily"
'
Call page_SetUp
'
' Variations for page setup
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(1.5)
.RightMargin = Application.InchesToPoints(0.9)
.Zoom = 75
End With
ActiveSheet.PrintPreview
ActiveSheet.PageSetup.PrintArea = ""
Range("H126, H126").Select
End Sub

问。我做错了什么,导致它只能在首先开发的 Bed1 工作表中起作用?

亲切的问候拉斯

最佳答案

将代码从ThisWorkbook模块中取出并放入普通代码模块中。在设计模式下,在 Excel 窗口(不是 VBE)中,右键单击按钮并执行分配宏,然后选择宏“Prevw1_Click”。那应该有效。您必须将宏分配给每个按钮,或者您可以简单地将按钮复制/粘贴到其他工作表。

如果您的按钮是 ActiveX 控件,那么我认为您可能需要在按钮所在的工作表中为每个按钮提供子例程。因此,每个工作表可能有一个名为“CommandButton1”的 activeX 命令按钮,那么每个 Worksheet 代码模块应该有一个子例程,例如:

Sub CommandButton1_Click()
Call ClickTheButton
End Sub

您基本上会将所有相同的代码放入 10 个工作表代码模块中的每一个中。然后,在普通代码模块中重命名您的例程,例如:

Private Sub ClickTheButton()
'============================================
' DAILY PATIENT TIMETABLE
' PRINT PREVIEW
'============================================
ActiveSheet.Select
ActiveSheet.AutoFilterMode = False
Range("_Daily").Select
ActiveSheet.PageSetup.PrintArea = "_Daily"
'
Call page_SetUp
'
' Variations for page setup
With ActiveSheet.PageSetup
.LeftMargin = Application.InchesToPoints(1.5)
.RightMargin = Application.InchesToPoints(0.9)
.Zoom = 75
End With
ActiveSheet.PrintPreview
ActiveSheet.PageSetup.PrintArea = ""
Range("H126, H126").Select
End Sub

我这样做而不是将现有宏复制到 10 个工作表中的每个的原因很简单:如果您需要修改子例程,则只需在一处修改它。同样,如果您添加一个新的工作表,您只需要复制 3 行代码而不是 20 行。这种方式更容易维护,因为每个工作表的按钮都调用相同的代码,每个工作表的按钮应该只有一个简单的子这调用了“main”过程。

关于excel - 在所有工作表中应用按钮+宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19550693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com