Excel VBA 如何向新添加的sheet中添加worksheet_change事件呢?

Excel VBA 如何向新添加的sheet中添加worksheet_change事件呢?,第1张

改成下面这样就行了。

ShtCodeName = ThisWorkbook.Worksheets("AAAA").CodeName

With ThisWorkbook.VBProject.VBComponents.Item(ShtCodeName).CodeModule

.InsertLines 1, "Private Sub Worksheet_Change(ByVal Target As Range)"

.InsertLines 2, "msgbox ""生成事件成功"""

.InsertLines 3, "'这是一个注释示例"

.InsertLines 5, "End Sub"

End With

试试吧。

首先解释一下将要用到的公式

以下公式可以获取当前工作表的名字:

=CELL("filename",A1)

注意,当前文档必须是保存过的,因为该函数返回的信息包括盘符、路径等,如果没有保存过文档,则函数只能返回空字符串。

进一步地,以下公式提取工作表Sheet31名字的末尾数字:

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+6,2)

好了,留意下面的具体 *** 作。

一、选择工作组Sheet31-Sheet4(可先点Sheet31,按住Shift键,再点Sheet4)

二、在Sheet31的单元格G4输入以下公式:

="="&"SUM(Sheet1:Sheet"&MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+6,2)-3&"!G31)"

三、复制G4——选择性粘贴——数值

这样就在Sheet31-Sheet4的G4同时生成一个公式形式的文本串。

四、按Ctrl+H,在“查找内容”和“替换为”框中都输入“=”,全部替换

这样,就将公式形式的文本串,都转换为真正的公式了。

说明,因为你题目要求Sheet31中的公式合计到Sheet28,所以在上述公式中,提取当前工作表名字末尾的数字后,要减3。

因此,只能对Sheet31-Sheet4作为快速 *** 作。

至于Sheet1-Sheet3的公式,大概不难矣。

楼主要触发事件宏代码吗

打开vbe编辑器

选择需要添加事件的工作表

然后在通用里选择worksheet选择具体事件

再根据需求添加代码


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11832593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存